答案 0 :(得分:1)
让我们有3个承诺 - 2个已解决,1个处于拒绝状态,并将它们彼此混合使用 - 超时将在1秒后被拒绝。
Promise.race
会在给定数组中的某个承诺解析或拒绝后立即返回promise。
const Promise = require("bluebird");
let p1 = Promise.resolve('first')
let p2 = new Promise((resolve) => {
setTimeout(resolve, 1e8)
})
let p3 = Promise.resolve('third')
Promise.race([
Promise.all([p1, p2, p3]).then(() => console.log('ok')),
new Promise((resolve, reject) => setTimeout(reject, 1e3)) // rejected after 1000 ms
])
.catch(() => console.log(`Promise p2 is in pending state: ${p2.isPending()}`))
.catch()
会记录Promise p2 is in pending state: true