【发布时间】:2019-12-21 03:55:37
【问题描述】:
我有一个 NodeJS 应用程序,我需要从另一台服务器获取数据(第 3 方,我无法控制它)。服务器要求您指定要返回的最大条目数以及偏移量。例如,如果服务器上有100 条目,我可以请求100 的pageSize 和0 的offset,或10 的pageSize,并使用@987654328 进行10 个请求@ 1,2,3 等并执行 Promise.all(在计时时执行多个并发较小的请求会更快)。
var pageSize = 100;
var offsets = [...Array(totalItems / pageSize).keys()];
await Promise.all(offsets.map(async i => //make request with pageSize and offset));
唯一的问题是条目的数量发生了变化,并且服务器没有返回指示条目总数的属性。我可以做这样的事情,while 循环,直到服务器返回空:
var offset = 0;
var pageSize = 100;
var data = [];
var response = await //make request with pageSize and offset
while (response is not empty){
data.push(response);
offset++;
//send another request
但这不像上面发送多个并发请求那样高效/快速。
有没有什么好的方法可以处理服务器上数据的动态长度?
【问题讨论】:
标签: node.js dynamic server promise httprequest