7
我試圖學習異步等待。在此代碼 -異步函數 - 等待不等待承諾
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());
爲什麼我收到輸出 -
Promise { <pending> }
而是一些價值? getResult()
函數不應該等待myFun()
函數解析它的promise值嗎?
爲什麼最後異步(帶有IIFE)變爲同步,但不是我的'的getResult()'方法? –
@hg_git因爲它被包裝在一個異步IIFE中,有一個等待電話。它不會變成同步的,它只是語法上的糖。 –
我的'getResult()'也有'async'關鍵字,還有'await'調用。 –