HomeLập trìnhJavaScriptLời hứa JavaScript...

Lời hứa JavaScript – Giải thích về các phương thức Promise.then, Promise.Catch và Promise.Lastly


Promise là một đối tượng trong JavaScript sẽ tạo ra một giá trị trong tương lai. Điều này thường áp dụng cho các hoạt động không đồng bộ.

Trong các ứng dụng, hoạt động không đồng bộ xảy ra rất nhiều. Đây có thể là các yêu cầu API, quá trình xử lý dữ liệu bị trì hoãn, v.v.

Thay vì phải chặn thực thi mã cho đến khi tải dữ liệu, bạn có thể xác định chúng như lời hứa để việc thực thi mã tiếp tục với các phần khác của mã. Và khi các lời hứa hoàn thành, bạn có thể sử dụng dữ liệu trong đó.

Bạn có thể tìm hiểu thêm về lời hứa trong bài viết đơn giản hóa này.

Trong một số trường hợp, một lời hứa được thực hiện và trong những trường hợp khác, nó không thành công. Làm thế nào để bạn xử lý kết quả từ mỗi kết quả?

Trong phần còn lại của bài viết này, chúng ta sẽ hiểu then, catchfinally phương pháp hứa hẹn.

Các trạng thái của lời hứa trong JavaScript

Một lời hứa có ba trạng thái:

  • chưa giải quyết: lời hứa vẫn còn trong tác phẩm
  • hoàn thành: lời hứa giải quyết thành công và trả về một giá trị
  • vật bị loại bỏ: lời hứa thất bại với một lỗi
Đọc thêm  Ba cách để đảo ngược một chuỗi trong JavaScript

Các hoàn thànhvật bị loại bỏ các quốc gia có một điểm chung: cho dù một lời hứa được thực hiện hay bị từ chối, thì lời hứa vẫn định cư. Vì vậy, một trạng thái ổn định có thể là một lời hứa được thực hiện hoặc bị từ chối.

Khi một lời hứa được thực hiện

Khi một lời hứa được thực hiện, bạn có thể truy cập dữ liệu đã giải quyết trong then phương pháp của lời hứa:

promise.then(value => {
 // use value for something
})

Hãy nghĩ về then phương pháp là “điều này hoạt động và sau đó làm điều này với dữ liệu được trả về từ lời hứa”. Nếu không có dữ liệu, bạn có thể bỏ qua then phương pháp.

Cũng có thể là then phương thức có thể trả lại một lời hứa khác, vì vậy bạn có thể xâu chuỗi một lời hứa khác then phương pháp như thế này:

promise
  .then(value => {
    return value.anotherPromise()
  })
  .then(anotherValue => {
    // use this value
  })

Khi một lời hứa bị từ chối

Khi một lời hứa bị từ chối (nghĩa là lời hứa không thành công), bạn có thể truy cập thông tin lỗi được trả về trong catch phương pháp của lời hứa:

promise.catch(error => {
  // interpret error and maybe display something on the UI
})

Lời hứa có thể thất bại vì những lý do khác nhau. Đối với các yêu cầu API, đó có thể là kết nối mạng không thành công hoặc lỗi được trả về từ máy chủ. Những lời hứa như vậy sẽ bị từ chối nếu chúng gặp lỗi.

Đọc thêm  Chức năng của người điều hành điểm thẩm vấn (?) trong JavaScript

Hãy nghĩ về catch phương pháp là “cái này không hoạt động nên tôi nắm lấy lỗi để nó không làm hỏng ứng dụng”. Nếu bạn không bắt lỗi, điều này có thể làm hỏng ứng dụng của bạn trong một số trường hợp.

Khi một lời hứa được giải quyết

Có một giai đoạn cuối cùng của lời hứa. Cho dù lời hứa được thực hiện hay bị từ chối, lời hứa đã được hoàn thành (đã được định cư). Ở giai đoạn hoàn thành này, bạn có thể finally làm việc gì đó.

Các finally phương pháp hứa hữu ích khi bạn muốn làm điều gì đó sau khi lời hứa đã được giải quyết. Đây có thể là phần dọn dẹp hoặc mã mà bạn có thể muốn sao chép trong thencatch các phương pháp.

Ví dụ, thay vì làm:

let dataIsLoading = true;

promise
  .then(data => {
    // do something with data
    dataIsLoading = false;
  })
  .catch(error => {
   // do something with error
   dataIsLoading = false;
  })

Bạn có thể dùng finally phương pháp như thế này:

let dataIsLoading = true;

promise
  .then(data => {
    // do something with data
  })
  .catch(error => {
   // do something with error
  })
  .finally(() => {
    dataIsLoading = false;
  })

Các finally phương thức được gọi bất kể kết quả (được thực hiện hay bị từ chối) của lời hứa.

Gói (lại

Những lời hứa có then, catchfinally phương pháp để làm những việc khác nhau tùy thuộc vào kết quả của một lời hứa. Tóm tắt:

  • then: khi một lời hứa thành công, bạn có thể sau đó sử dụng dữ liệu đã giải quyết
  • catch: khi một lời hứa thất bại, bạn nắm lấy lỗi và làm điều gì đó với thông tin lỗi
  • finally: khi một lời hứa được giải quyết (thất bại hoặc vượt qua), bạn có thể cuối cùng làm việc gì đó
Đọc thêm  Cẩn thận với các phương thức mảng xâu chuỗi trong JavaScript



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status