【发布时间】:2019-11-13 18:07:45
【问题描述】:
我有两个用 Promise 编写的函数:
const resolvedDelay = (value, ms) => new Promise(resolve => setTimeout(() => resolve(value),ms));
const rejectedDelay = (value, ms) => new Promise((resolve,reject) => setTimeout(() => reject(value),ms));
我尝试通过 async/await 重写它们。这是我的错误尝试:
const resolvedDelay = async (value, ms) => setTimeout(() => value,ms); // I haven't reference to `resolve` here... :(
const rejectedDelay = async (value, ms) => setTimeout(() => {throw new Error(value)},ms);
怎么做才对?
【问题讨论】:
-
只有当你想在函数中使用
await承诺时,使用async才有意义。由于setTimeout与promise 无关,因此您也不能使用async。第一种方式是唯一正确的方式。
标签: javascript asynchronous promise async-await