节点JS多个http请求丢失响应
你好我正在使用一个循环的节点js http请求,它的大小是1728,它的响应缺少像它卡在1727善意帮助我我试图解决这个问题三天。节点JS多个http请求丢失响应
for (let i = 0 ; i < playerLength ; i++) {
for (let j = startYear ; j < currentYear ; j++) {
var playerSeasonData = {};
playerSeasonData.url = me.config.sport.url + league + '/v2/JSON/PlayerSeasonStatsByPlayer/'+ j +'/' + playerData[i].playerID;
playerSeasonData.method = 'GET';
playerSeasonData.headers = {};
playerSeasonData.headers = {'Ocp-Apim-Subscription-Key':'**********************'};
me.request(playerSeasonData ,function( error, response, data ){
count ++;
)};
}
}
您所遇到的问题是,所有的HTTP请求已经完成之前,你的函数返回。
考虑promisifying me.request
通过bluebird
,然后返回Promise.all
。这里有一个例子:http://bluebirdjs.com/docs/api/promise.all.html
我会实现这一点,然后我会告诉你感谢的答复 – AhmedSaboorRiksof
我实现promisifying me.request通过蓝鸟然后承诺它的所有没有工作,它卡在1698或1643 – AhmedSaboorRiksof
你可以再次发布代码plz? –
您是否尝试过使用< =而不是<的简单解决方案。很难说你正在展示的代码,但这可能是1728 & 1727之间的差异。
没有必要做这个人我在循环之前初始化count变量 – AhmedSaboorRiksof
你如何推断请求“缺少响应”?它始终是相同数量的请求?尽量减少这个例子,使其变得更小和自包含没有未指定的变量('playerLength'等的值是什么)?请注意,响应是异步的,如果您在循环内某处读取“count”,则值可能会错误,因为随着新响应的到来,计数器将随时间而变化。 –
我正在计算循环内的请求和播放器长度是557,尽量减少大小,但我仍然面临同样的问题.. – AhmedSaboorRiksof
帮助我,如果你找到任何解决方案 – AhmedSaboorRiksof