for (var index = 0; index < data.length; index++) {
var req = http.request(urlEntity, function(res) {
var content = "";
res.on("data", function(data) {
content += data;
});
res.on('end', function() {
// 获取到数据
......
});
});
req.on("error", function(e) {
if(e){
console.info(e);
// 遇到异常
}
});
}
//往下执行
以上那段代码我需要有多个请求都发送成功才继续往下执行,但是由于异步,导致请求还没有响应回来就已经往下执行,求助下各位大神要怎么弄才能?
我自己的想法就是在每一个request里面设置一个标识和一个监听器,当回来的个数和data.length一致时才触发事件往下执行,但是这里出现了问题,不知道为什么异常数加上请求成功数加起来没有等于data.length。
自带的官方好像没说有改成同步的方法,不过你完全可以不用自带的嘛!强大的npm已经有你想要的东西了啊:https://www.npmjs.org/package/httpsync
如果实在是想要用自带的写的话只能用递归来解决异步循环这个问题了。大概是以下这个样子的: