Javascript 是否可以使用wait-outside-async函数

Javascript 是否可以使用wait-outside-async函数,javascript,node.js,asynchronous,async-await,ecmascript-2017,Javascript,Node.js,Asynchronous,Async Await,Ecmascript 2017,这是我在nodejs中的简单函数 const myFunction = async() => { const exercises = await Exercise.find({ workoutId }) return exercises } const value = await myFunction() 但当我在异步函数外部执行wait时,它会抛出一个错误 await is a reserved word 现在我如何在异步函数之外等待值?我需要使用回调还是。然后?

这是我在nodejs中的简单函数

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

const value = await myFunction()
但当我在异步函数外部执行wait时,它会抛出一个错误

 await is a reserved word

现在我如何在异步函数之外等待值?我需要使用回调还是
。然后
?那么
async和await
有什么用呢?

在异步函数之外不能使用
await
。 “绕过”此限制的一个技巧是使用异步IFEE:

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

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

不能在异步函数外部使用
wait
。 “绕过”此限制的一个技巧是使用异步IFEE:

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

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

对主要问题的简短回答:“是否可以使用
wait
外部
async
功能”no

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

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

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

由于
async
是一个包装器,用于
承诺
访问您需要使用的
结果,然后
,当执行完成时,将触发回调。

对主要问题的简短回答:“是否可以使用
等待
外部
async
函数”

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

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

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

由于
async
承诺的一个包装器,它可以访问您需要使用的结果
,然后
,当执行完成时,就会触发回调。

async/await只是Promisesasync/await的语法糖,而不是让异步代码同步;是的,
await
取代了原本应该使用的
then
。为什么要在async之外使用await?async/await只是Promisesasync/await的语法糖,而不是让异步代码同步;它旨在使异步代码的编写(和读取)更加容易,
await
替换了本来应该使用的
位置,然后
。为什么要在异步外部使用await?是否
常量值
不限于该自执行函数的范围?是否
常量值
不限于该自执行函数的范围?