Đối tượng Promise đại diện cho việc hoàn thành (hoặc thất bại) cuối cùng của một hoạt động không đồng bộ và giá trị kết quả của nó. Hàm chờ đợi không đồng bộ và các toán tử hoạt động trên các hứa hẹn.
Các hàm async / await giúp chúng tôi viết mã hoàn toàn đồng bộ trong khi thực hiện các tác vụ không đồng bộ đằng sau hậu trường.
Ví dụ:giả sử chúng ta có một hàm không đồng bộ trả về một lời hứa -
// Promise that resolves to 100 after 2sec function getHundred() { return new Promise(resolve => { setTimeout(() => { resolve(100); }, 2000); }); }
Chúng ta muốn sử dụng điều này trong một hàm, nhưng chúng ta cần đợi giá trị trả về. Sử dụng lệnh gọi lại, chúng ta có thể thực hiện việc này theo cách sau -
function useGetHundred() { getHundred().then((value) => { console.log(value); }) }
Nhưng chúng ta không cần thiết phải tạo một lệnh gọi lại để thực thi trên dữ liệu trả về. Thay vào đó, chúng tôi có thể sử dụng async await để đơn giản hóa mã này -
Ví dụ
// Declare an async function. When this function is called, it'll also return a Promise // But inside this function any async calls can be made synchronous using await keyword async function useGetHundredAsync() { // wait for the getHundred promise to resolve then store its value in value. let value = await getHundred(); console.log(value) }
Đầu ra
100