gpt4 book ai didi

javascript - ES6 Promise.all 进度

转载 作者:可可西里 更新时间:2023-11-01 01:36:49 24 4
gpt4 key购买 nike

在继续之前,我有几个需要解决的 promise 。

Promise.all(promises).then((results) => {
// going further
});

有什么方法可以让 Promise.all promise 有进展吗?

从文档看来,it is not possible .和 this question也不回答。

所以:

  • 您不认为这会有用吗?我们不应该查询此功能吗?
  • 目前如何手动实现它?

最佳答案

我编写了一个您可以重复使用的小辅助函数。

基本上像往常一样传递你的 promise ,并提供一个回调来做你想做的事情..

function allProgress(proms, progress_cb) {
let d = 0;
progress_cb(0);
for (const p of proms) {
p.then(()=> {
d ++;
progress_cb( (d * 100) / proms.length );
});
}
return Promise.all(proms);
}

function test(ms) {
return new Promise((resolve) => {
setTimeout(() => {
console.log(`Waited ${ms}`);
resolve();
}, ms);
});
}


allProgress([test(1000), test(3000), test(2000), test(3500)],
(p) => {
console.log(`% Done = ${p.toFixed(2)}`);
});

关于javascript - ES6 Promise.all 进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42341331/

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