async的eachLimit方法内使用superagent的疑惑
在抓网页遇到这样一个问题:
async.eachLimit(dataArr, 100,
function(item, callback) {
superagent
.get('url')
.query({ act: item })
.end(function(err,res){
if (err) {
return console.error("someErr: ", err);
}
var idata = JSON.parse(res.text);
idata = idata.toString() + "\n";
fs.appendFile('data.txt', idata, function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});
});
},
function(err) {
log('Get err: ' + err);
});
每次只获取100个数据后,程序就结束了,没有继续下一批数据获取。不太明白什么原因,希望大侠指点!
2 回复
用async.series https://github.com/caolan/async#seriestasks-callback
没有调用callback函数,在end的时候调用一下callback即可