是否可以在异步函数之外使用 await

Is it possible to use await outside async function

这是我在 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

您不能在异步函数外使用 await。 'bypass' 这个限制的一个技巧是使用异步 IFEE:

const myFunction = async() => {
    const exercises = await Exercise.find({ workoutId })
    return exercises
};

(async () => {
    const value = await myFunction()
})()

主要问题的简短回答:"Is it possible to use await outside async function" .

但是有多种方法可以访问 async 操作的值,例如

const myFunction = async() => {
    const exercises = await Exercise.find({ workoutId })
    return exercises
}

const execution = () => {
    myFunction().then( ( exercises ) => {
        console.log( exercises );
    });
}

因为 asyncPromises 的包装器来访问您需要使用 then 的结果,并且当执行完成时触发回调。