我有一些如下代码
'use strict';
function greeting() {
console.log('Hello ' + getName());
}
async function getName() {
return 'Fred';
}
greeting();
我期望输出为 Hello Fred
,但它返回给我 Hello[object Promise]
。我知道没有必要通过 async
来装饰 getName()
,我只是描述我遇到的类似情况。
最佳答案
异步函数必须使用await
关键字调用。 async
函数始终返回带有返回值的 Promise,并且 await
从 Promise 中“拉出”值。 await
只能在异步函数内部使用。
async function getName() {
return 'Fred'
}
async function greeting() {
console.log('Hello ' + await getName())
}
greeting()
// while this isn't *required*, it's good practice to always handle promise errors
.catch(error => console.error(error))
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
关于javascript - 为什么我无法从 async 修饰的函数中获得预期结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738475/