请高手帮助 有点难度 循环回调合并数据
发布于 3个月前 作者 wuqing5828 225 次浏览 来自 问答

for(var i in list){ var plurl="http://xxx.com?eid="+list[i].id; requestUrl(plurl,function(err,data){ //数据处理 }); } //这里合并for的数据

就是将for里requestUrl回调函数的数据都合并到一起 请问这该怎么做呢

7 回复

async.each试试?

var result={} var len =0; for(var i in list){ len++; } for(var i in list){ var plurl="http://xxx.com?eid="+list[i].id; requestUrl(plurl,function(err,data){ result[i]=data; len–; next(); }); } function next(){ if(!len){ //你的执行-》结果都在result中 } }

var eventproxy = require(“eventproxy”); var ep = new eventproxy(); var result =[]; ep.after("list",list.length,function(rows){ rows.forEach(function®{ result = result.concat®; }) }) for(var i in list){ var plurl="http://xxx.com?eid="+list[i].id; requestUrl(plurl,ep.group(“list”)); } //最后result 就是你要的结果

说明 由于转义字符,® 应该是®

谢谢大家了 我使用async.map 解决了

function collectDatas(err, data) {
    result.push(data);
    checkDone();
}
function checkDone() {
    count++;
    if (count === list.length) 
        cb(result);
}
var callback = function(err, data) {
    collectData(err, data);
};

大致是这么个思路

回到顶部