node.js在'之后执行函数;n';执行异步回调
我不知道如何在执行“n”个异步函数后执行回调,例如:node.js在'之后执行函数;n';执行异步回调,node.js,events,asynchronous,callback,Node.js,Events,Asynchronous,Callback,我不知道如何在执行“n”个异步函数后执行回调,例如: var after4AsyncOperation = function(){ //do something... } process.nextTick(function(){ //do stuff }) process.nextTick(function(){ //do stuff }) process.nextTick(function(){ //do stuff }) process.nextTick(fu
var after4AsyncOperation = function(){
//do something...
}
process.nextTick(function(){
//do stuff
})
process.nextTick(function(){
//do stuff
})
process.nextTick(function(){
//do stuff
})
process.nextTick(function(){
//do stuff
})
是否有一种方法可以在4个异步函数之后执行after4AsyncOperation
,而不必将函数一个写入另一个,例如:
var after4AsyncOperation = function(){
//do something...
}
process.nextTick(function(){
//do stuff
process.nextTick(function(){
//do stuff
process.nextTick(function(){
//do stuff
process.nextTick(function(){
//do stuff
after4Asyncoperation();
})
})
})
})
您可以利用具有此功能和许多其他优秀特性的强大库。要具体完成您希望完成的任务,您可以使用以下系列: 或平行:
两者之间的区别在于,串联运行一个接一个的所有函数,而并联同时运行所有函数。在任何一种情况下,在它们全部完成后都会有一个回调,这似乎是您试图实现的。我建议使用异步库,例如。然后,您可以使用
async.parallel
、async.series
或async.auto
<代码>自动是最灵活的,但是比其他的稍慢一些;在parallel
和series
之间进行选择需要更多关于您尝试执行的操作的信息-第一个示例是并行操作,但第二个示例是串联操作
但是,如果您不想使用库,可以编写自定义的内容。我会这样做:
var numFuncs = 4;
var callback = function(){
numFuncs--;
if(numFuncs == 0) {
after4AsyncOperation();
}
}
var after4AsyncOperation = function(){
//do something...
}
process.nextTick(function(){
//do stuff
callback();
})
process.nextTick(function(){
//do stuff
callback();
})
process.nextTick(function(){
//do stuff
callback();
})
process.nextTick(function(){
//do stuff
callback();
})
这是通过从我们期望调用回调的次数倒计时来实现的(numFuncs
),并且只有在我们被回调了正确的次数后才调用after4AsyncOperation