Spec-Zone.ru › Bluebird

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API