Trung BìnhJavaScript iconJavaScript

Promise.all(), Promise.race(), Promise.allSettled() và Promise.any() khác nhau như thế nào?

So sánh 4 combinators của Promise:

javascript
const p1 = fetch('/api/a');
const p2 = fetch('/api/b');

// all(): fail-fast nếu có 1 reject
const [a, b] = await Promise.all([p1, p2]);

// race(): lấy kết quả đầu tiên (fulfilled hoặc rejected)
const first = await Promise.race([p1, p2]);

// allSettled(): chờ tất cả, không reject
const results = await Promise.allSettled([p1, p2]);
// results[0] = { status: 'fulfilled', value: ... }
// results[1] = { status: 'rejected', reason: ... }

// any(): fulfilled đầu tiên, reject chỉ khi tất cả reject
const fastest = await Promise.any([p1, p2]);

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript