有没有人知道我可以确定每个承诺在Promise.all([...])
执行多长时间?
提前致谢!
答案 0 :(得分:1)
你可以制作自己的Promise.all功能。
下面是一个示例,它返回它返回的数组中每个promise的时间,该数组也包含promises的结果,但当然在这个demo中我的wait
函数没有任何返回。 / p>
function wait(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
async function myPromiseAll(promises) {
const starttime = new Date().getTime();
const timings = [];
promises.forEach((prom, ix) => {
prom.then(() => {
timings[ix] = new Date().getTime() - starttime;
});
});
const result = await Promise.all(promises);
return {result, timings};
}
async function run() {
console.log("Starting stuff.");
const ret = await myPromiseAll([
wait(1000), wait(2000)]);
console.log(ret.timings);
// console.log(ret.result); result of promises
}
run();