Một cách để lấy giá trị được phân giải giá trị của một JavaScript hứa rằng nó sẽ gọi phương thức Show Tham số có giá trị được giải quyết Chẳng hạn, chúng ta có thể viết Promise.resolve(1) Chúng tôi gọi Sau đó, chúng tôi gọi
Và do đó, giá trị của Chúng tôi cũng có thể nhận được giá trị được giải quyết của một lời hứa với cú pháp Chẳng hạn, chúng ta có thể viết (async () => { Chúng tôi gán giá trị đã giải quyết của lời hứa với cú pháp Do đó, Chỉ có thể sử dụng Chúng ta có thể lấy giá trị đã phân giải của JavaScript bằng từ khóa Trong JavaScript, Lời hứa được sử dụng để xử lý các hoạt động không đồng bộ. Nó chỉ là một trình giữ chỗ cho một nhiệm vụ đang chờ xử lý chưa được hoàn thành Lời hứa có ba trạng thái
Trong JavaScript hiện đại, bạn có thể triển khai và truy cập giá trị của lời hứa bằng cách sử dụng
Hứa. sau đó()Trong phương thức này, để truy cập giá trị của một lời hứa, chúng ta chỉ cần gọi một phương thức "then()" theo sau lời hứa
Trong đoạn mã trên, chúng tôi đã tạo một lời hứa bằng cách sử dụng "Lời hứa. giải quyết ()" và lưu nó vào một biến. Sau đó, chúng ta có thể gọi phương thức "then()" trên biến này, phương thức này sẽ chứa giá trị lời hứa được trả về làm tham số cho hàm. Chúng ta có thể sử dụng giá trị này để tính toán thêm Nếu bạn để ý, chúng tôi đã sử dụng phương thức "catch()" theo sau là phương thức "then()" trong mã ví dụ. Điều này là để xử lý một lời hứa từ chối. Đoạn mã sau sẽ dẫn đến lời hứa bị từ chối. Chúng tôi có thể tạo một lời hứa từ chối bằng cách sử dụng "Lời hứa. phương thức từ chối ()"
Chờ đợi không đồng bộĐây là phương thức thứ hai bạn có thể sử dụng để xử lý giá trị trả về của JavaScript Promise. Phương thức chờ đợi không đồng bộ thường được sử dụng bên trong hàm javascript. Các ví dụ sau sẽ chỉ ra cách xử lý việc thực hiện hoặc từ chối một lời hứa
Chúng tôi đã tạo một lời hứa mẫu bằng cách sử dụng "Lời hứa. giải quyết ()" và lưu nó vào một biến. Sau đó, chúng tôi đã gọi biến cùng với toán tử "chờ đợi" bên trong hàm không đồng bộ Quan trọng - Hàm có toán tử "await" được gọi bên trong phải luôn được khai báo bằng từ khóa "async" để làm cho hàm có khả năng thực thi không đồng bộ Bây giờ, chúng ta sẽ tạo một lời hứa từ chối bằng cách sử dụng "Promise. reject()" để xem cách xử lý từ chối
Lưu ý cách xử lý từ chối bằng cách sử dụng khối "thử bắt". Đây là kỹ thuật truy xuất lý do từ chối lời hứa Sử dụng khối try-catch là cần thiết khi sử dụng phương pháp "Async-await" để xử lý từ chối. Nếu chúng tôi gặp lỗi chưa được xử lý từ một lời hứa do không có phương thức "bắt", chúng tôi sẽ không bao giờ biết nguyên nhân gây ra lỗi Sử dụng Async-await bên ngoài một chức năngCó thể có những trường hợp bạn cần sử dụng "async-await" bên ngoài chức năng javascript. Điều này là có thể với một số tinh chỉnh. Tuy nhiên, nó không được hỗ trợ trong phiên bản trước của NodeJS và các trình duyệt. Chỉ các phiên bản NodeJS sau "16. 12. 0" và các trình duyệt hiện đại hỗ trợ điều này Một "chờ đợi" bên ngoài một chức năng được gọi là "chờ đợi" cấp cao nhất. Để bật tính năng chờ cấp cao nhất, chúng tôi cần đưa tệp JavaScript dưới dạng "mô-đun" vào bên trong tệp "HTML" Làm cách nào tôi có thể nhận được tất cả các kết quả Promise?Lời hứa. all() sẽ từ chối ngay lập tức khi bất kỳ lời hứa đầu vào nào từ chối. Để so sánh, lời hứa được trả lại bởi Promise. allSettled() sẽ đợi tất cả các lời hứa đầu vào hoàn thành, bất kể có từ chối hay không. Sử dụng allSettled() nếu bạn cần kết quả cuối cùng của mọi lời hứa trong lần lặp đầu vào .
Giá trị trả về của Promise * là gì?Trả về giá trị
. Lời hứa mới này luôn ở trạng thái chờ khi được trả lại, bất kể trạng thái của lời hứa hiện tại. Một trong các trình xử lý onFulfills và onRejected sẽ được thực thi để xử lý việc thực hiện hoặc từ chối lời hứa hiện tại. Returns a new Promise immediately. This new promise is always pending when returned, regardless of the current promise's status. One of the onFulfilled and onRejected handlers will be executed to handle the current promise's fulfillment or rejection.
Lời hứa trả về trong JavaScript là gì?Về cơ bản, một lời hứa là một đối tượng được trả về mà bạn đính kèm các lệnh gọi lại , thay vì chuyển các lệnh gọi lại vào một hàm.
Loại trả về Promise là gì?Lời hứa chấp nhận chức năng gọi lại làm tham số và ngược lại, hàm gọi lại chấp nhận hai tham số khác, giải quyết và từ chối. Nếu điều kiện là đúng, thì giải pháp được trả về; . Về cơ bản, kiểu trả về của kiểu Promise được xác định ngay sau từ khóa Promise . |