function aLog(time, str) {
return new Promise((resolve) => {
setTimeout(() => {
return resolve(str);
}, time);
});
}
function basicLog() {
aLog(200, 'Dòng 1').then((res) => console.log('Basic: ', res));
console.log('Basic');
aLog(100, 'Dòng 2').then((res) => console.log('Basic: ', res));
}
basicLog();
// Basic
// Basic: Dòng 2
// Basic: Dòng 1
Xem file Basic Function
console.log('Basic')
được in ra đầu tiên.Dòng 2
được in ra tiếp theo do thời gian chờ là 100ms.Dòng 1
được in ra cuối cùng do thời gian chờ là 200ms > 100ms so với Dòng 2
.Khi chạy xử lý bằng Async/Await
bằng code sau:
function aLog(time, str) {
return new Promise((resolve) => {
setTimeout(() => {
return resolve(str);
}, time);
});
}
async function asynLog() {
await aLog(200, 'Dòng 1').then((res) => console.log('Async: ', res));
console.log('Async');
await aLog(100, 'Dòng 2').then((res) => console.log('Async: ', res));
}
asynLog();
// Async: Dòng 1
// Async
// Async: Dòng 2
Xem file Async Function
Dòng 1
được in ra đầu tiên.Async
được in tiếp theo.Dòng 2
được in ra; mặc dù đang xử lý Bất đồng bộ và thời gian chờ là 100ms < 200ms của Dòng 1
.Async/Await
làm cho các câu lệnh Bất đồng bộ chạy theo thứ tự.