讨论:一种类似闭包的方式解决深度嵌套的问题
我的思路如下:在函数内定义函数,然后通过计数器设定时候是最后一个任务完成。
function(req,res,next){
var data = {};
var length =0 ;
var url = ['http://123.com','http://123.com','http://123.com','http://123.com']
var done = function (name,value) {
data[name] = value;
if (length >url.length) {
res.render('myview',{data});
}
}
for(j=0;j<=url.length;j++){
todo(j,url[j],function(id,p){
length++;
done(id,p);
});
}
}
function todo( id,url, callback){
_get(url,function(err,p){
if(err) throw(err);
callback(id,p);
});
}
不知道这种方式会不会引起内存泄露的问题。当然这种即使可行的话也仅适合于一些简单的签到问题,复杂的还是需要像jscex这类的库。 @jscex