Как использовать Bluebird .Spread в цепочке обещаний [дублировать]

let является частью es6. Эти функции объяснят разницу легким способом.

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // same variable!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // different variable
    console.log(x);  // 2
  }
  console.log(x);  // 1
}
42
задан ThomasReggi 15 June 2015 в 18:35
поделиться

3 ответа

Используйте Promise.resolve - он возьмет любой последующий, как обещание от какой-либо другой реализации, и ассимилирует его в обещание Bluebird.

Имейте в виду, что термин «разрешение» может вводить в заблуждение, это не означает то же самое, что «выполнить», но также может следовать другому обещанию и соглашаться на его результат.

67
ответ дан Bergi 29 August 2018 в 02:58
поделиться

Использовать Bluebird Promise.method!

const Promise = require('bluebird');

const fn = async function() { return 'tapped!' };

bluebirdFn = Promise.method(fn);

bluebirdFn().tap(console.log) // tapped!
fn().tap(console.log) // error
1
ответ дан richardpringle 29 August 2018 в 02:58
поделиться

Если вы хотите преобразовать обещание в обещание bluebird не решить ничего и вернуть customPromise, тогда у вас будет доступ ко всем пользовательским методам bluebirds в цепочке.

Promise.resolve().then(function(){
  return customPromise()
})

Или

Promise.resolve(customPromise())
13
ответ дан ThomasReggi 29 August 2018 в 02:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: