【发布时间】:2016-01-03 21:28:02
【问题描述】:
我误解了 Promise.all 吗?我在一个数组中有 X 个 promise,我正在尝试汇总数组的成功/失败比率。
以下是我认为我知道的:
Promise.all 接受一组承诺。
如果所有的承诺都成功了,那么.then 回调就会运行。
如果其中一个承诺失败,则调用 .catch 回调,传入的参数是单个引发错误的值。
如果一些成功而一些失败,则不会触发回调,这是所有承诺的结果。 IE。它不能给你一个像(伪代码)[success, fail, success, success] 这样的数组——就像人们期望的那样,并且可以在许多 JS 库(ajax、ember 等)中找到。
就像.then 更像是.success,而不是一个在所有承诺都实现后总是运行的函数,无论一些成功还是失败。 为什么没有.when.finally.runThisShizNoMatterWhat??还是我错过了什么(很可能)?
【问题讨论】:
-
您的问题是有道理的,但寻求帮助并同时攻击设计您使用的语言的人似乎适得其反。
-
成功正是
.then(x)的意义所在。你在想.then(x,y)。我为 ES6 坚持核心特性而不是走上添加每个人最喜欢的助手的道路而鼓掌。
标签: javascript ecmascript-6 es6-promise