Node.js 调用异步函数
我有一个模块如下: async.js index.js 如何在index.js中直接作为Node.js 调用异步函数,node.js,express,asynchronous,Node.js,Express,Asynchronous,我有一个模块如下: async.js index.js 如何在index.js中直接作为asyncFun()运行它 我知道如何作为中间件运行这些函数,但我想直接运行它。至于运行它,我需要调用wait,如果不在async内部,就不能调用wait。您可以使用以下方法: (async () => { await asyncFun(); })(); 尝试在async.js中添加return语句 module.exports = async function (){ return
asyncFun()
运行它
我知道如何作为中间件运行这些函数,但我想直接运行它。至于运行它,我需要调用wait,如果不在async内部,就不能调用wait。您可以使用以下方法:
(async () => {
await asyncFun();
})();
尝试在async.js中添加return语句
module.exports = async function (){
return await func()
}
然后直接运行asyncFun()我通过使根函数异步并用普通函数包装所有异步函数,异步函数返回一个承诺来解决这个问题。(使用呼叫) 例如: 假设这是编写所有代码的主要函数
// create it as a async function
module.exports = async function main(){
// Do something all your stuff
}
从其他地方调用主函数
require('./main)()
您不需要调用wait,只需运行asyncFunc()。您可以使用默认的承诺语法:
asyncFun()。然后(()=>doSomething())
@Sirko可以做到这一点,但问题是下面有很多代码,我需要使用async来保持代码干净。我想您不需要将其包装在index.js中的异步函数中。只需返回asyncFun()或const asyncData=asyncFun()就可以了。@chrlip将异步工作。即使我等待承诺的解决,我也不想使用。你能提供更多信息吗(func()指的是什么?)一个有很多db操作的函数是异步的吗?或者不异步,并返回一个承诺
?它是异步函数。那么您在哪个上下文中调用asyncFun?
// create it as a async function
module.exports = async function main(){
// Do something all your stuff
}
require('./main)()