只做一个简单的功能:
async function doAsync() {
return await "test"
}
console.log(doAsync())
输出:承诺{[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
可能出现什么问题?
答案 0 :(得分:2)
async
函数返回一个promise。 始终。您必须在该承诺上使用.then()
或await
才能获得该值。
doAsync().then(val => {
console.log(val);
});
虽然async
和await
有时允许您在函数本身内编写更多同步代码,但它们并不能从根本上将异步操作更改为同步操作。
async
函数仍会返回一个承诺,获取其值的唯一方法是在其上使用.then()
或await
。如果您在链中返回值,则最终需要使用.then()
来获取值。
有关异步功能,请参阅MDN description。这是一个引用:
返回值
一个Promise,它将使用async函数返回的值进行解析,或者在异步函数中抛出未捕获的异常而被拒绝。