```
var p1 = Promise.resolve(42);
var p2 = new Promise((resolve, reject) => setTimeout(() => resolve(43), 100));
var v3 = 44;
var p4 = new Promise((resolve, reject) => setTimeout(() => reject('oops'), 10));
//有一個被拒絕則整體被拒絕
Promise.all([p1, p2, v3]).then(data => console.log(data)); //[42, 43, 44]
Promise.all([p1, p2, v3, p4])
.then(data => console.log(data), err => console.log(err)); //oops
Promise.race([p2, p1, v3]).then(data => console.log(data)); //42
Promise.race([p2, p4])
.then(data => console.log(data), err => console.log(err)); //oops
```
Promise.all([])將會立即完成(沒有完成值),Promise.race([])將會永遠掛起。
- 你不知道的JS上
- 第一部分 第三章 函數作用域和塊作用域
- 第一部分 第四章 提升
- 第一部分 第五章 閉包
- 第二部分 第一章 關于this
- 第二部分 第二章 this全面解析
- 第二部分 第三章 對象
- 第二部分 第五章 原型
- 第二部分 第六章 行為委托
- 你不知道的JS中
- 第一部分 第二章 值
- 第一部分 第三章 原生函數
- 第一部分 第四章 強制類型轉換
- 第一部分 第五章 語法
- 第二部分 第一章 異步
- 第二部分 第三章 Promise
- 第二部分 第四章 生成器
- 第二部分 第五章 性能
- 你不知道的JS下
- 第一部分 總結
- 第二部分 第二章 語法
- 第二部分 第三章 代碼組織
- 第二部分 第四章 Promise
- 第二部分 第五章 集合
- 第二部分 第六章 新增API
- 第二部分 第七章 元編程
- 第二部分 第八章 ES6之后