ecmascript-6 - 我什么时候应该直接调用 Promise.resolve() ?

标签 ecmascript-6 es6-promise

我发现原生 ES6 Promise.resolve() 可以作为静态方法直接调用。 Facebook 在他们的 Flux 示例中就是这样使用它的。

但在什么情况下我应该这样做呢?排队买东西?或者不使用 window.setTimeout()

最佳答案

当您需要创建已解决的 Promise 时,您应该调用 Promise.resolve(object)。例如,您可能有一个函数开始从服务器下载资源或返回其缓存版本:

function getImage(imageUrl) {
    if (imageUrl in this.cache) {
        // no need to download, return immediately
        return Promise.resolve(this.cache[imageUrl]);
    } else {
        return new Promise(function(resolve, reject) {
            // start downloading and eventually resolve
        });
    }
}

关于ecmascript-6 - 我什么时候应该直接调用 Promise.resolve() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461170/

相关文章:

javascript - 按索引将数组追加到对象的嵌套数组中

javascript - 以函数式、协变的方式使用 Array.prototype.map

javascript - 在 React 中使用 JS ES6 Promise 时出现问题 - TypeError : Cannot read property 'then' of undefined

javascript - 如何将这个延迟风格的 promise 转换为 ES6 风格的 promise

javascript - Promise.all : Order of resolved values

javascript - 如何在 Protractor/ Jasmine 测试中等待 promise ?

javascript - 'do...while' 语句中出现意外赋值。为什么这是不好的做法?我可以做什么?

javascript - react 运动的压倒性语法

javascript - 在javascript中以通用方式从末尾开始子字符串

promise - Javascript Promise 解析方法在控制台中打印。如何?