Promise.all([p1, p2, p3, …])
所有 Promise 都 resolve 或其中一个 reject 才停止
then(res => {}) 的 res 是一个数组,其顺序会按 .all() 传入 Promise 数组的顺序
then(res => {}, reason => {}) 或 catch(reason => {}) 的 rason 都是一个值
Promise.race([p1, p2, p3, …])
所有 Promise 中哪一个快就返回那一个无论 resolve, reject
Promise.allSettled
ES 2020
所有 Promise 都跑完,无论 resolve 或是 reject
所以不会出现 catch 和 reason
res 以一个数组,其元素为 {status: "fulfilled", value: "1", status: "rejected", reason: "3"}
的对象形式出现