Notes

JavaScript Promise 控制

Promise.all

门 Gate 机制

Promise.race

门闩,竞态

应用

超时竞赛

Promise.race([foo(), timeoutPromise(3000)])
  .then(function() {
    // foo() 在竞争中胜出,在 3 秒内完成了
  }, function(err) {
    // foo() 执行失败,被拒绝了,或者没有在 3 秒内完成
  });

Promise 变体

Promise.none([…])

Promise.any([…])

Promise.first([…])

Promise.last([…])