Promise.all()

Bài này giới thiệu các hàm static của Promise bao gồm: Promise.resolve(), Promise.reject(), Promise.all()Promise.race().

Hàm Promise.resolve() và Promise.reject()

Hai hàm Promise.resolve()Promise.reject() là hàm tạo Promise có trả về thành công và lỗi tương ứng.

1
2
3
Promise.resolve(123).then((number) => {
  console.log('Nhận giá trị ' + number); // Nhận giá trị 123
});

Hàm Promise.all()

Hàm Promise.all() được sử dụng để chạy song song các thao tác bất đồng bộ. Tham số của hàm là mảng các promise, giá trị trả về là mảng các kết quả trả về của promise. Hàm này sẽ thực hiện xong khi tất cả các promise thực hiện xong.

1
2
3
4
5
6
7
Promise.all([
  123,
  Promise.resolve(456),
]).then(([result1, result2]) => {
  console.log('Kết quả promise thứ nhất trả về ' + result1); // 123
  console.log('Kết quả promise thứ thứ hai trả về ' + result2); // 456
});

Hàm Promise.race()

Hàm Promise.race() sử dụng để chạy song song các thao tác bất đồng bộ tuy nhiên giá trị lấy về là kết quả trả về sớm nhất.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const promise1 = new Promise((resolve, reject) => {
  setTimeout(resolve, 500, '123');
});

const promise2 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, '456');
});

Promise.race([
  promise1,
  promise2
]).then(result => {
  console.log('Kết quả trả về sớm nhất ' + result); // 456
});