Bốn combinator nhận một mảng promise, khác nhau ở điều kiện settle:
Promise.all: chờ tất cả fulfilled → trả mảng kết quả theo đúng thứ tự. Fail-fast: chỉ một promise reject là reject ngay với lỗi đó (không chờ số còn lại). Dùng khi cần đủ mọi kết quả và muốn dừng sớm nếu một cái hỏng.Promise.allSettled: chờ tất cả settle (dù fulfilled hay rejected), không bao giờ reject → trả mảng object{ status: 'fulfilled', value }hoặc{ status: 'rejected', reason }. Dùng khi muốn chạy hết và xử lý từng kết quả riêng, không để một lỗi làm hỏng cả nhóm.Promise.race: settle theo promise về đích đầu tiên — fulfilled hay rejected đều được (kết quả/lỗi của cái nhanh nhất). Dùng cho timeout (đua request với một promise hẹn giờ).Promise.any: trả fulfilled đầu tiên; chỉ reject khi tất cả đều reject (némAggregateErrorgom mọi lỗi). Dùng khi chỉ cần một nguồn thành công (đua nhiều mirror).
Mẹo nhớ: all = tất cả thắng hoặc fail-fast; allSettled = chờ hết, không bỏ ai; race = ai xong trước (kể cả lỗi); any = ai thành công trước.