【发布时间】:2016-11-12 12:16:00
【问题描述】:
基本上,我正在寻找类似Promise.all() 的东西,但只要结果准备好,它就会为每个结果调用then() 中的函数。使用像这样的标准回调编写是微不足道的(文件读取示例):
function foo(files, bar) {
for (let file of files) {
const fr = new FileReader();
fr.onload = e => bar(e.target.result);
fr.readAsDataURL(file);
}
}
我确定那里有一个库可以满足我的需求,但我想用纯 JS 来实现。
为了澄清,我想要这样的东西:
function foo(files) {
// do something here;
}
foo(['1','2','3']).then(/* do something here with separate results */);`
【问题讨论】:
-
forEach数组方法是否满足您的要求? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
这意味着我在调用 Promise 函数后无法编写简单的 .then()。
-
您介意添加一个示例来演示它是如何不起作用的吗? jib 下面的回答似乎适合我的 POV
-
你为什么不做 promise.race 来获得第一个结果,然后用 promise.all 来做剩下的。
标签: javascript arrays callback promise ecmascript-6