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
}
Используйте Promise.resolve
- он возьмет любой последующий, как обещание от какой-либо другой реализации, и ассимилирует его в обещание Bluebird.
Имейте в виду, что термин «разрешение» может вводить в заблуждение, это не означает то же самое, что «выполнить», но также может следовать другому обещанию и соглашаться на его результат.
Использовать 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
Если вы хотите преобразовать обещание в обещание bluebird не решить ничего и вернуть customPromise
, тогда у вас будет доступ ко всем пользовательским методам bluebirds в цепочке.
Promise.resolve().then(function(){
return customPromise()
})
Или
Promise.resolve(customPromise())