不明白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(),
])
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
不阻塞,任何一个promise reject或者resolve,对别的promise不影响,仅仅影响Promise.all返回的promise