我正在尝试掌握node.js的流量控制。 在下面的代码中,我定义了一个包含递归函数的函数。我想调用这个“main”函数,等待它完全完成,然后console.log结果。问题是node.js的非阻塞方式。如何设置回调以确保输出正确?
在下面的代码中输出将为空,我该如何更改?据我所见,我必须设置一个回调,但到目前为止我所有的努力都没用。
var main = function(){
var list=[1,2,3,4];
var value=[];
function twotimes(i){
if (i<list.length){
var j=i*2;
value[i]=j;
twotimes(i+1); //recursive call of "twotimes"
}
}
twotimes(0); //initiate the function
}
main(function(err){
console.log(value);
});
答案 0 :(得分:1)
试试这个:
var main = function(callback){
var list=[1,2,3,4];
var value=[];
function twotimes(i){
if (i<list.length){
var j=i*2;
value[i]=j;
twotimes(i+1); //recursive call of "twotimes"
}
}
twotimes(0); //initiate the function
callback(value)
}
main(function(value){
console.log(value);
});