求大神帮忙 forEach里循环发请求 如何控制最终回调
我有这样一个需求,利用request 向一个服务器发请求获取数据,例如我有一个url_list, 这里面放的是各种抓数据的url,然后做其他的逻辑 ,我利用了async; 我想到的方法是:
async.waterfall([ function(callback){ url_list.forEach(function(url){ request(url,(e, r, json) { 想要的数据 ===json里面的数据 callback(全部数据) }); }); }, 其他的逻辑(例如渲染页面)
但是这样我怎么控制回调呢,也是等待所有的请求返回后,采取执行callback,有什么方式 或者库都请,求大神帮忙, 我是node新手
3 回复
then.js的写法如下:
// url_list 为数组
then.each(url_list, function (defer, url) {
request(url, function (err, res, json) {
defer(err, json)
})
}).then(function (defer, result) {
// result 就是url获取的json结果数组,顺序与url对应
}).fail(function (defer, err) {
// 处理 err
})
https://github.com/teambition/then.js 目前teambition.com前端和angularjs.cn的后端采用的then.js
在外面多嵌套一个
var work = async.waterfall([
function(callback){
url_list.forEach(function(url){
request(url,(e, r, json) {
想要的数据 ===json里面的数据
callback(全部数据)
});
});
async.forEach(list, work, function(){
//fin work
})