Tôi đang cố gắng tìm hiểu async-await. Trong mã này -chức năng không đồng bộ - đang chờ đợi không chờ lời hứa
const myFun =() => {
let state = false;
setTimeout(() => {state = true}, 2000);
return new Promise((resolve, reject) => {
setTimeout(() => {
if(state) {
resolve('State is true');
} else {
reject('State is false');
}
}, 3000);
});
}
const getResult = async() => {
return await myFun();
}
console.log(getResult());
lý do tại sao tôi nhận được đầu ra như -
Promise { <pending> }
Thay vì một số giá trị? Không nên để chức năng getResult()
chờ cho chức năng myFun()
giải quyết giá trị lời hứa của nó?
tại sao async cuối cùng (một với IIFE) trở thành đồng bộ nhưng không getResult() 'phương pháp của tôi'? –
@hg_git Bởi vì nó được bọc trong một async IIFE, với một cuộc gọi đang chờ. Nó không trở thành đồng bộ, nó chỉ là đường hợp lý. –
'getResult()' của tôi cũng có từ khóa 'async', và một cuộc gọi 'chờ đợi' .. –