Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 调用异步函数_Node.js_Express_Asynchronous - Fatal编程技术网

Node.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

我有一个模块如下:

async.js

index.js

如何在index.js中直接作为
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)()