编程语言
首页 > 编程语言> > javascript – 异步函数 – 等待不等待承诺

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