Chcę pracować z obietnicami, ale mam interfejs API wywołania zwrotnego w formacie: 1. Ładowanie DOM lub inne jednorazowe zdarzenie: window.onload; // set to callback ... window.onload = function() { }; 2. Zwykły oddzwonienie: function request(onChangeHandler) { ... } request(function() { // change happened ... }); 3. Oddzwanianie w stylu węzła …
Przekształciłem swój kod w obietnice i zbudowałem wspaniały długi, płaski łańcuch obietnic , składający się z wielu .then()wywołań zwrotnych. Na koniec chcę zwrócić pewną wartość złożoną i muszę uzyskać dostęp do wielu wyników pośrednich obietnic . Jednak wartości rozdzielczości od połowy sekwencji nie są objęte zakresem ostatniego oddzwaniania, jak uzyskać …
Pisałem kod, który robi coś, co wygląda: function getStuffDone(param) { | function getStuffDone(param) { var d = Q.defer(); /* or $q.defer */ | return new Promise(function(resolve, reject) { // or = new $.Deferred() etc. | // using a promise constructor myPromiseFn(param+1) | myPromiseFn(param+1) .then(function(val) { /* or .done */ | …
JavaScript rozwijam od kilku lat i wcale nie rozumiem zamieszania związanego z obietnicami. Wygląda na to, że wszystko, co robię, to zmiana: api(function(result){ api2(function(result2){ api3(function(result3){ // do work }); }); }); I tak mógłbym użyć biblioteki takiej jak asynchroniczna , z czymś takim jak: api().then(function(result){ api2().then(function(result2){ api3().then(function(result3){ // do work …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 4 lata temu . Popraw to pytanie Czy po dodaniu natywnej obsługi obietnic przez Node.js nadal istnieją …
Rzuciłem okiem na często zadawane pytania dotyczące obietnicy bluebird , w których wspomina, że .then(success, fail)jest to antypattern . Nie do końca rozumiem jego wyjaśnienie dotyczące próby złapania. Co jest z tym nie tak? some_promise_call() .then(function(res) { logger.log(res) }, function(err) { logger.log(err) }) Wygląda na to, że przykład sugeruje następujące …
W util.jspliku Bluebird ma następującą funkcję: function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastProperties", true, obj); return f; eval(obj); } Z jakiegoś powodu po funkcji return znajduje się instrukcja, której nie jestem pewien, dlaczego się tam znajduje. Wydaje się również, że jest to celowe, ponieważ autor …
Wciąż jestem dość nowy w obietnicach i obecnie używam Bluebird, jednak mam scenariusz, w którym nie jestem do końca pewien, jak najlepiej sobie z tym poradzić. Na przykład mam łańcuch obietnic w aplikacji ekspresowej, takiej jak ta: repository.Query(getAccountByIdQuery) .catch(function(error){ res.status(404).send({ error: "No account found with this Id" }); }) .then(convertDocumentToModel) …
Jak poprawnie skonstruować pętlę, aby upewnić się, że następuje wywołanie obietnicy i łańcuch logger.log (res) działają synchronicznie przez iterację? (niebieski ptak) db.getUser(email).then(function(res) { logger.log(res); }); // this is a promise Spróbowałem w następujący sposób (metoda z http://blog.victorquinn.com/javascript-promise-while-loop ) var Promise = require('bluebird'); var promiseWhile = function(condition, action) { var resolver …
Używam bluebird i widzę dwa sposoby przekształcania funkcji synchronicznych w obietnicę, ale nie widzę różnic między nimi. Wygląda na to, że ślad stosu jest nieco inny, więc nie są one tylko znakami alias, prawda? Więc jaki jest preferowany sposób? Sposób A function someFunction(someObject) { return new Promise(function(resolve) { someObject.resolved = …
Mam prosty moduł węzła, który łączy się z bazą danych i ma kilka funkcji do odbierania danych, na przykład ta funkcja: dbConnection.js: import mysql from 'mysql'; const connection = mysql.createConnection({ host: 'localhost', user: 'user', password: 'password', database: 'db' }); export default { getUsers(callback) { connection.connect(() => { connection.query('SELECT * FROM …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.