'async/await' trong JavaScript : sự cố dễ dàng
Tôi đã có khoảng thời gian khó khăn khi học khái niệm async & await trong JavaScript, đó là lý do tại sao tôi muốn giải thích ở đây một cách đơn giản nhất có thể để bạn không cảm thấy khó khăn chút nào:
Đối với các chức năng không đồng bộ, tôi cho rằng bạn đã biết về Lời hứa trong JS, Nếu chưa, vui lòng đọc về lời hứa trong JavaScript tại đây:
chức năng không đồng bộ :
Một chức năng có thể được thực hiện không đồng bộ bằng cách sử dụng từ khóa 'không đồng bộ'. Nó có thể chứa 0 hoặc nhiều biểu thức 'chờ đợi'.
Nó hoạt động với Promise để tránh nhiều tình huống .then() trong chuỗi lời hứa hoặc để viết hành vi dựa trên lời hứa theo phong cách rõ ràng.
Tuyên bố: Nó có thể được khai báo bằng cách sử dụng 'hàm không đồng bộ' trong đó cho phép từ khóa 'chờ đợi' trong phần thân hàm.
biểu thức chờ đợi tạm dừng thực thi cho đến khi lời hứa trả lại được thực hiện hoặc bị từ chối, do đó làm cho chức năng lời hứa hoạt động đồng bộ.
await chỉ hợp lệ bên trong chức năng async.
Ví dụ sử dụng Promise:
function resolveAfter6Second() {
console.log("starting a slow promise");
return new Promise ((resolve) => {
setTimeout( function () {
resolve("slow");
console.log("This is slow promise");
}, 6000);
} );
}
function resolveAfter3Second() {
console.log("starting fast promise");
return new Promise((resolve) => {
setTimeout(() => {
resolve("fast");
console.log("fast promise is done");
}, 3000);
});
}
async function sequentialStart() {
console.log("performing Sync Operation");
const slow = await resolveAfter6Second();
console.log(slow);
const fast = await resolveAfter3Second();
console.log(fast);
}
sequentialStart();
![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































