gpt4 book ai didi

javascript - 为什么我的 Promise.race 实现不起作用?

转载 作者:行者123 更新时间:2023-12-02 23:48:05 27 4
gpt4 key购买 nike

我有一个任务,我应该实现函数 Promise.race 而不使用它本身。

我已经找到了应该可以工作的代码,但是控制台抛出了错误

“TypeError:promise 不是函数”

function promiseRace(...promises) {
return new Promise((resolve, reject) => {
for(const promise of promises)
promise.then(resolve, reject);
})
};

我也尝试了这个,但它显示了相同的错误(关于p):

const promiseRace = (...promises) {
new Promise((res, rej) => {
promises.forEach(p => p.then(res).catch(rej));
})
};

有人知道为什么它不起作用吗?

最佳答案

您的后一个示例缺少第二行的 return 语句:*return* new Promise(...

您的第一个示例工作正常(见下文),但请注意,标准 Promise.race 接受数组参数,而您的实现接受可变参数:

function promiseRace(...promises) {
return new Promise((resolve, reject) => {
for (const promise of promises)
promise.then(resolve, reject);
})
}

let slowPromise = new Promise(r => setTimeout(() => r('slow'), 2000));
let quickPromise = new Promise(r => setTimeout(() => r('quick'), 1000));

promiseRace(slowPromise, quickPromise).then(a => console.log('promiseRace', a));

Promise.race([slowPromise, quickPromise]).then(a => console.log('Promise.race', a));

关于javascript - 为什么我的 Promise.race 实现不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55763748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com