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

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

721
Как преобразовать существующий API обратного вызова в обещания?

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

650
Как получить доступ к предыдущим результатам обещания в цепочке .then ()?

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

430
Разве обещания не являются просто обратными вызовами?

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

229
Есть ли еще причины использовать библиотеки обещаний, такие как Q или BlueBird, теперь, когда у нас есть обещания ES6? [закрыто]

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

188
Когда .then (успех, неудача) считается антипаттером для обещаний?

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

165
Как функция 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 есть оператор, который я не уверен, почему он там есть....

125
Обработка нескольких перехватов в цепочке обещаний

Я все еще новичок в promises и использую bluebird в настоящее время, однако у меня есть сценарий, в котором я не совсем уверен, как с этим лучше всего справиться. Так, например, у меня есть цепочка обещаний в экспресс-приложении, например: repository.Query(getAccountByIdQuery)...

116
Правильный способ написания циклов для обещаний.

Как правильно построить цикл, чтобы убедиться, что следующий вызов обещания и связанный logger.log (res) выполняются синхронно через итерацию? (Bluebird) db.getUser(email).then(function(res) { logger.log(res); }); // this is a promise Я пробовал следующий способ (метод из...

105
Размещение улова ДО и ПОСЛЕ

Мне сложно понять разницу между помещением .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);...

98
Promise.resolve против нового обещания (разрешение)

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

94
Замена обратных вызовов обещаниями в Node.js

У меня есть простой модуль узла, который подключается к базе данных и имеет несколько функций для получения данных, например эту функцию: dbConnection.js: import mysql from 'mysql'; const connection = mysql.createConnection({ host: 'localhost', user: 'user', password: 'password', database: 'db'...