我有非常简单的代码如下。
函数ls有async关键字,它返回Promise。
但是,调用常量val = await ls()
会出现以下错误。
SyntaxError: await is only valid in async functions and the top level bodies of modules
有人能帮助我为什么这个错误会出现吗:
- 函数ls有async关键字
- 它还返回一个Promise
此外,使用下面这样的then子句,它可以很好地进行
ls().then(val => console.log(val)).catch(e => e)
但下面的代码不起作用
async function ls() {
return new Promise((resolve) => {
resolve('Print Output !!')
});
}
const val = await ls()
console.log(val)
async function ls() {
return new Promise((resolve) => {
resolve('Print Output !!')
});
}
// Way 1
async function test() { //function created for "await ls()"
const val = await ls(); //this await requires async
console.log("Way 1 " + val)
}
test();
// Way 2
(async function() {
const val = await ls();
console.log("Way 2 " + val)
})();