Promise.resolve
Promise.resolve(Promise<any>|any value) -> Promise
Создать промис, который разрешается с заданным значением. Если value уже является доверенным Promise, он возвращается как есть. Если value не является thenable, возвращается выполненный Promise со значением выполнения value. Если value является thenable (Promise-подобный объект, например, такие, которые возвращаются jQuery's $.ajax), возвращается доверенный Promise, который усваивает состояние thenable.
Это может быть полезно, если функция возвращает промис (скажем, в цепочке), но может также необязательно вернуть статическое значение. Например, для лениво загруженного значения. Пример:
var someCachedValue;
var getValue = function() {
if (someCachedValue) {
return Promise.resolve(someCachedValue);
}
return db.queryAsync().then(function(value) {
someCachedValue = value;
return value;
});
};
Еще один пример с обработкой объектов, преобразуемых jQuery ($ - jQuery)
Promise.resolve($.get("http://www.google.com")).then(function() {
//Returning a thenable from a handler is automatically
//cast to a trusted Promise as per Promises/A+ specification
return $.post("http://www.yahoo.com");
}).then(function() {
}).catch(function(e) {
//jQuery doesn't throw real errors so use catch-all
console.log(e.statusText);
});
© 2013–2018 Petka Antonov
Licensed under the MIT License.
http://bluebirdjs.com/docs/api/promise.resolve.html