讨论:一种类似闭包的方式解决深度嵌套的问题
发布于 7 年前 作者 tank00 3729 次浏览 最后一次编辑是 3 年前

我的思路如下:在函数内定义函数,然后通过计数器设定时候是最后一个任务完成。

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

3 回复

可以嘗試async或eventproxy

试试看Jscex嘛。

@jeffz 呵呵 老赵 对 试试Jscex 支持老赵

回到顶部