不明白Promise.all的参数有一个失败的话,后阻塞后面的参数执行吗?
比如参数数组是[promise1, promise2, promise3],响应速度是promise1快于promise2快于promise3。
执行后promise1成功了,promise2失败了,这时候promise3还会执行完吗?promise2的失败是不是既会把Promise.all的状态变为reject,还会阻塞promise3的执行?promise3即使能成功也不会执行呢?
不明白Promise.all的参数有一个失败的话,后阻塞后面的参数执行吗?
比如参数数组是[promise1, promise2, promise3],响应速度是promise1快于promise2快于promise3。
执行后promise1成功了,promise2失败了,这时候promise3还会执行完吗?promise2的失败是不是既会把Promise.all的状态变为reject,还会阻塞promise3的执行?promise3即使能成功也不会执行呢?
不会阻塞,全都会执行。只要全部成功,promise.all就成功了,如果其中一个失败了,catch一下也表示成功
Promise.all([
demo1(),
demo2().catch(e => '出错了'),
demo3(),
])
13 回答13k 阅读
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
7 回答2.2k 阅读
5 回答1.4k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
不阻塞,任何一个promise reject或者resolve,对别的promise不影响,仅仅影响Promise.all返回的promise