请高手帮助 有点难度 循环回调合并数据
 发布于 10 年前  作者 wuqing5828  4195 次预览  最后一次回复是 10 年前  来自 问答 

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

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

7 回复
20082496

async.each试试?

MiguelValentine

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中 } }

359056163

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 就是你要的结果

359056163

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

359056163

我艹!(r)

wuqing5828

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

dayuoba
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);
};

大致是这么个思路