Móc xích các Promises trong Javascript

Móc xích các Promises trong Javascript

Một promise có thể dựa vào phân giải thành công của một promise trước. Ví dụ, bạn có thể hứa hẹn mua
groceries, cook một meal, và clean dishes, nhưng nếu không mua groceries không có promise để cook và
không làm cook sẽ không có dirty dishes. Một móc xích promise (promise chain) có cấu trúc chung sau:

promise
.then(function)
.then(function)

.catch(function

với mỗi phương thức then() trả về một object promise với các giá trị truyền tới phương thức then() tiếp theo.
Móc xích kết thúc với một phát biểu catch() xử lí bất cứ bác bỏ nào cái phá vỡ promise chain. Các móc xích
promise tránh callback hell vì các promises không được nested bên trong một cái khác nhưng được thực thi trong
chuỗi khi mỗi promise được truyền đi tới cái tiếp theo.
Code sau thể hiện có bao nhiêu phương thức then() có thể được móc xích để truyền các giá trị promise qua chuỗi
xích. Như trước kia, “Planning dinner” lập tức được viết vào log khi promise được khởi tạo. Nếu promise được phân
giải thành công, thông điệp “Bought groceries” được ghi vào và sau đó phương thức then() trả về text string “Started
cooking”, cái được truyền tới phương thức then() tiếp theo nơi nó cũng được ghi vào. Nếu promise ban đầu bị bác bỏ, chỉ text “Ordered takeout” được ghi vào.

buyGroceries
.then(msg => {
console.log(msg);
return “Started cooking”;
})
.then(newMsg => console.log(newMsg))
.catch(msg => console.log(msg));
console.log(“Planning dinner”);

Chia sẻ