.reflect
.reflect() -> Promise<PromiseInspection>
Метод .reflect возвращает промис, который всегда успешен, когда этот промис завершается. Его значение выполнения — объект, реализующий интерфейс PromiseInspection и отражающий результат выполнения этого промиса.
Использование .reflect() для реализации функциональности settleAll (подождать, пока все промисы в массиве не будут отклонены или выполнены)
var promises = [getPromise(), getPromise(), getPromise()];
Promise.all(promises.map(function(promise) {
return promise.reflect();
})).each(function(inspection) {
if (inspection.isFulfilled()) {
console.log("A promise in the array was fulfilled with", inspection.value());
} else {
console.error("A promise in the array was rejected with", inspection.reason());
}
});
Использование .reflect() для реализации функциональности settleProps (как settleAll для свойств объекта)
var object = {
first: getPromise1(),
second: getPromise2()
};
Promise.props(Object.keys(object).reduce(function(newObject, key) {
newObject[key] = object[key].reflect();
return newObject;
}, {})).then(function(object) {
if (object.first.isFulfilled()) {
console.log("first was fulfilled with", object.first.value());
} else {
console.error("first was rejected with", object.first.reason());
}
})
© 2013–2018 Petka Antonov
Licensed under the MIT License.
http://bluebirdjs.com/docs/api/reflect.html