Promise.all

Promise.all(
  Iterable<any> | Promise<Iterable<any>> input
) -> Promise

当你希望等待多个承诺完成时,此方法很有用。

给定 Iterable (数组是 Iterable),或者 Iterable 的承诺,它产生 promises(或者 promises 和 values 的混合),将 Iterable 中的所有值迭代到一个数组中,并返回一个在所有时都满足的 promise。数组中的项目已完成。promise 的履行值是一个数组,其在原始数组的各个位置具有履行值。如果数组中的任何 promise 都拒绝,则返回的 promise 将被拒绝并拒绝原因。

var files = [];
for (var i = 0; i < 100; ++i) {
    files.push(fs.writeFileAsync("file-" + i + ".txt", "", "utf-8"));
}
Promise.all(files).then(function() {
    console.log("all the files were created");
});

此方法与本机承诺中的 Promise.all 兼容。