javascript – 异步函数 – 等待不等待承诺
作者:互联网
我正在努力学习async-await.在这段代码中 –
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值吗?
解决方法:
如果您使用的是async / await,则所有调用都必须使用Promises或async / await.你不能只是神奇地从同步调用中获得异步结果.
你的最后一次电话需要是:
getResult().then(response => console.log(response));
或类似的东西:
(async () => console.log(await getResult()))()
标签:ecmascript-2017,javascript,node-js,asynchronous 来源: https://codeday.me/bug/20191007/1866539.html