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"} 的对象形式出现