Вопросы с тегом «bluebird»

Bluebird - это полнофункциональная библиотека обещаний для клиентского и серверного JavaScript, ориентированная на инновационные функции и производительность.

19
Как преобразовать существующий API обратного вызова в обещания?
Я хочу работать с обещаниями, но у меня есть API обратного вызова в таком формате: 1. Загрузка DOM или другое одноразовое событие: window.onload; // set to callback ... window.onload = function() { }; 2. Простой обратный вызов: function request(onChangeHandler) { ... } request(function() { // change happened ... }); 3. …

17
Как получить доступ к предыдущим результатам обещания в цепочке .then ()?
Я реструктурировал свой код к обещаниям и создал замечательную длинную цепочку плоских обещаний , состоящую из нескольких .then()обратных вызовов. В конце я хочу вернуть несколько составных значений и получить доступ к нескольким промежуточным результатам обещаний . Однако значения разрешения в середине последовательности не входят в область действия последнего обратного вызова. …

2
Что такое явное обещание конструкции antipattern и как мне этого избежать?
Я писал код, который делает что-то похожее на: 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 */ …

10
Разве обещания не являются просто обратными вызовами?
Я разрабатывал JavaScript в течение нескольких лет, и я совсем не понимаю суеты по поводу обещаний. Кажется, что все, что я делаю, это изменения: api(function(result){ api2(function(result2){ api3(function(result3){ // do work }); }); }); Для чего я мог бы использовать библиотеку async для чего-то вроде: api().then(function(result){ api2().then(function(result2){ api3().then(function(result3){ // do work …


1
Есть ли еще причины использовать библиотеки обещаний, такие как Q или BlueBird, теперь, когда у нас есть обещания ES6? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Улучшить этот вопрос После того, как Node.js добавил встроенную поддержку обещаний, есть ли …

7
Когда .then (успех, неудача) считается антипаттером для обещаний?
Я посмотрел на FAQ об синей птице , в котором упоминается, что .then(success, fail)это антипаттерн . Я не совсем понимаю его объяснение, что касается попытки поймать. Что не так с этим следующим? some_promise_call() .then(function(res) { logger.log(res) }, function(err) { logger.log(err) }) Кажется, что пример предлагает следующее как правильный путь. some_promise_call() …

1
Как функция util.toFastProperties в Bluebird делает свойства объекта «быстрыми»?
В util.jsфайле Bluebird он имеет следующую функцию: function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastProperties", true, obj); return f; eval(obj); } По какой-то причине после функции return есть оператор, который я не уверен, почему он там есть. Кроме того, кажется, что это является преднамеренным, поскольку автор …

7
Обработка нескольких перехватов в цепочке обещаний
Я все еще новичок в promises и использую bluebird в настоящее время, однако у меня есть сценарий, в котором я не совсем уверен, как с этим лучше всего справиться. Так, например, у меня есть цепочка обещаний в экспресс-приложении, например: repository.Query(getAccountByIdQuery) .catch(function(error){ res.status(404).send({ error: "No account found with this Id" }); …

13
Правильный способ написания циклов для обещаний.
Как правильно построить цикл, чтобы убедиться, что следующий вызов обещания и связанный logger.log (res) выполняются синхронно через итерацию? (Bluebird) db.getUser(email).then(function(res) { logger.log(res); }); // this is a promise Я пробовал следующий способ (метод из http://blog.victorquinn.com/javascript-promise- while-loop ) var Promise = require('bluebird'); var promiseWhile = function(condition, action) { var resolver = …

2
Размещение улова ДО и ПОСЛЕ
Мне сложно понять разницу между помещением .catchBEFORE и AFTER во вложенное обещание. Альтернатива 1: test1Async(10).then((res) => { return test2Async(22) .then((res) => { return test3Async(100); }).catch((err) => { throw "ERROR AFTER THEN"; }); }).then((res) => { console.log(res); }).catch((err) => { console.log(err); }); Альтернатива 2: test1Async(10).then((res) => { return test2Async(22) .catch((err) => …

2
Promise.resolve против нового обещания (разрешение)
Я использую bluebird и вижу два способа преобразовать синхронные функции в Promise, но я не вижу различий между ними. Похоже, трассировка стека немного отличается, так что это не просто, не так ли alias? Итак, какой способ предпочтительнее? Путь А function someFunction(someObject) { return new Promise(function(resolve) { someObject.resolved = true; resolve(someObject); …

8
Замена обратных вызовов обещаниями в Node.js
У меня есть простой модуль узла, который подключается к базе данных и имеет несколько функций для получения данных, например эту функцию: 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 …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.