这是我在nodejs中的简单功能
const myFunction = async() => {
const exercises = await Exercise.find({ workoutId })
return exercises
}
const value = await myFunction()
但是当我在异步函数之外执行await
时会抛出错误
await is a reserved word
现在如何等待异步函数之外的值?我是否需要使用回调或.then
?那么async and await
有什么用?
答案 0 :(得分:3)
您不能在异步函数外使用await
。
绕过此限制的一个技巧是使用异步IFEE:
const myFunction = async() => {
const exercises = await Exercise.find({ workoutId })
return exercises
};
(async () => {
const value = await myFunction()
})()
答案 1 :(得分:1)
主要问题的简短答案:“是否可以在await
函数之外使用async
” 否。
例如,有多种方法来访问async
操作的值
const myFunction = async() => {
const exercises = await Exercise.find({ workoutId })
return exercises
}
const execution = () => {
myFunction().then( ( exercises ) => {
console.log( exercises );
});
}
由于async
是Promises
的包装器,因此您需要使用then
来访问结果,并在执行完成后触发回调。