Luk*_*rek 2 javascript es6-promise
如何使用 async 和 await 实现 Promise.race() 方法?
async function promiseRace(promises) {
const results = [];
for (const p of promises) {
await p;
results.push(p);
}
return results[0];
}
Run Code Online (Sandbox Code Playgroud)
我试图像上面那样实现它,但这不起作用。
你不能。使用时,await您将停止执行一个特定的承诺。要Promise.race手动实现,您必须摆弄回调:
function race(promises) {
return new Promise((resolve, reject) => {
for(const promise of promises)
promise.then(resolve, reject);
});
}
Run Code Online (Sandbox Code Playgroud)
你不能。就像您不能Promise使用async/实现构造函数一样await。请记住,这await只是then调用的语法糖- 您不能仅使用它来实现基本的 promise 组合器。
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |