JavaScript中的Promise.all()和Promise.any()有什么区别?
What are the differences between Promise.all() and Promise.any() in JavaScript?
在 JavaScript 中使用 Promise
对象时,我注意到两个方法,即 Promise.all()
和 Promise.any()
。
它们都以一个可迭代对象(比如array
)作为参数。但是,我找不到每种方法的不同之处。
在MDN上搜索后,仍然很难找到两种方法之间差异的总结。
综上所述,JavaScript中的Promise.all()
和Promise.any()
有什么区别?
注:本题与无关。我问的不是 Promise.race()
,而是 Promise.all()
。
Promise.all
只有在传入的数组中的所有Promise
都被解析时才解析,而returns解析的数组Promise
。如果迭代器中的任何 Promise
拒绝,Promise.all
拒绝(我假设最初拒绝的原因)。
Promise.any
在传入数组中的任何 Promise
时解析,returns 第一个 Promise
解析。它不会拒绝,除非迭代器中的所有 Promise
都被拒绝。
Promise.all - 解决所有作为可迭代对象传递的承诺。当输入值被拒绝时,它也会完全拒绝,因为它遵循 all-or-nothing 方法.
Promise.any - 采用 Promise 对象的可迭代对象,并且一旦可迭代对象中的一个 promises 实现,它 returns 一个单一的 promise 以该 promise 的值解决。
在 JavaScript 中使用 Promise
对象时,我注意到两个方法,即 Promise.all()
和 Promise.any()
。
它们都以一个可迭代对象(比如array
)作为参数。但是,我找不到每种方法的不同之处。
在MDN上搜索后,仍然很难找到两种方法之间差异的总结。
综上所述,JavaScript中的Promise.all()
和Promise.any()
有什么区别?
注:本题与Promise.race()
,而是 Promise.all()
。
Promise.all
只有在传入的数组中的所有Promise
都被解析时才解析,而returns解析的数组Promise
。如果迭代器中的任何 Promise
拒绝,Promise.all
拒绝(我假设最初拒绝的原因)。
Promise.any
在传入数组中的任何 Promise
时解析,returns 第一个 Promise
解析。它不会拒绝,除非迭代器中的所有 Promise
都被拒绝。
Promise.all - 解决所有作为可迭代对象传递的承诺。当输入值被拒绝时,它也会完全拒绝,因为它遵循 all-or-nothing 方法.
Promise.any - 采用 Promise 对象的可迭代对象,并且一旦可迭代对象中的一个 promises 实现,它 returns 一个单一的 promise 以该 promise 的值解决。