我正在尝试学习异步等待。在这段代码中 -
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()
函数解析它的承诺值吗?
原文由 hg_git 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的是异步/等待,则所有调用都必须使用 Promises 或异步/等待。您不能只是神奇地从同步调用中获得异步结果。
您的最终通话需要是:
或者类似的东西: