Promises.resovle与新Promise

时间:2018-07-24 15:21:21

标签: ecmascript-6 promise es6-promise ecmascript-5

Lateley我看到了使用Promies的更短方法,而无需实际创建新Promise,

userBusiness.getAllFiles()
    .then(data => {
        console.log(data)
    });

export namespace userBusiness {
    export async function getAllFiles() {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                return resolve("files has arrvied");
            }, 5000)
        })
    }
}

这种方法可行,但我想对Promise.resolve使用另一种方法

return setTimeout(() => {
    return Promise.resolve("files has arrvied");
}, 5000)})

这似乎返回了setTimeout的对象,而不是输入“文件已到达”。为什么?使用Promise.resolve仍然可以模仿诺言机制,不是吗?

1 个答案:

答案 0 :(得分:0)

  

在第二种情况下,仅当回调为   在promise中调用。也就是说,setTimeout返回一个   getAllFiles对象,而不是setTimeout