什么时候然后从Promise.all()的子句运行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候然后从Promise.all()的子句运行?相关的知识,希望对你有一定的参考价值。
我正在盯着http://bluebirdjs.com/docs/api/promise.all.html的这段代码片段
代码特别是:
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");
});
我的问题特别是编译器在填充文件后如何知道调用.then块。什么阻止在文件长度为10或长度为100时调用.then子句。
什么时候然后从Promise.all()的子句运行?
Promise.all()
返回一个新的promise,它具有基于你传递给Promise.all()
的promises数组的特定行为。
如果承诺数组中的任何一个承诺拒绝,那么Promise.all()
承诺将拒绝并将调用它的.then()
中的拒绝处理程序(如果有的话)。
如果/当您传递的所有承诺都成功解决,那么Promise.all()
承诺将解决,它将调用.then()
中的解析处理程序。
我的问题特别是编译器在填充文件后如何知道调用.then块。什么阻止在文件长度为10或长度为100时调用.then子句。
Promise.all()
通过将.then()
处理程序附加到您传递它的每个承诺来执行它的工作,然后它监视它们的进度。它维护一个计数器,以跟踪您传递的每个承诺何时得到解决。
Promise.all
创建并返回一个包含所提供的promise数组的新promise。它将跟踪有多少内部承诺已经解决。一旦所有100个解决了,包装器承诺就会解决。
以上是关于什么时候然后从Promise.all()的子句运行?的主要内容,如果未能解决你的问题,请参考以下文章
Promise.all(...).spread 不是并行运行 Promise 时的函数
面试题系列---什么是Promise,解决什么问题?Promise.all解决了什么问题?实现原理?回调地狱?
将Promise.all与easyPost API一起用于多个跟踪状态请求