Nested promise là gì?

Noun Javascript
Promise lồng nhau

Trong Javascript, promise lồng nhau (nested promise) là khi bạn gọi promise con bên trong phương thức .then promise cha và tiếp tục như vậy. Ví dụ một nhà phát triển (developer) muốn tạo một tài khoản người dùng (user account), tiếp theo là thông tin subscription, sau đó là lịch sử mua subscription. Nó sẽ trông giống như thế này:


return promise1.then(promise1_output=> {
 return promise2.then(promise2_output => {
  return promise3.then(promise3_output => {
   console.log(promise3_output) // this continue
  })
 })
})

Trong đoạn mã trên, promise2 chỉ thực thi nếu promise1 resolve và promise3 chỉ được thực thi nếu promise2 được resolve. Trong promise lồng nhau (nested promise) khi bạn trả về (return) một promise bên trong một phương thức then, và nếu promise được trả về đã được resolve / reject, nó sẽ ngay lập tức gọi phương thức then / catch tiếp theo, nếu không nó sẽ đợi. Nếu promise không được trả về, nó sẽ thực thi song song.

Những promise lồng nhau (nested promise) này sẽ có quyền truy cập vào các biến từ tầm vực bên ngoài (outer scope) của chúng và được gọi là "kim tự tháp promise", sẽ phát triển sang bên phải.

Learning English Everyday