如何在循环请求中自动从数组中获取X数量的项



我有一个充满id的大数组(数组大小总是很大,例如超过1000),就像这个[000001,000002,000003,000004,...],我想发送一个请求到一个API,一次可以包含多达100个这些id(这是一个限制,每个请求只有100个id,超出我的控制)

端点将这些id作为url参数,如?ids=000001,000002,000003,000004,...,但我正在努力弄清楚我需要执行的逻辑,通过每100个条目进行循环,并接受这些条目,发送请求,然后重复,直到所有条目都添加到请求中?

这是我在SO上的第一个问题,所以如果这不是很正确的格式,我很抱歉,我只是真的需要对这个进行逻辑检查…

一般的原则是首先将你的大数组分成几个块,然后从每个块中形成一个请求,发送它,等待响应,保持结果,然后发送下一个。

下面是一些没有细节的代码:

const chunks = chunkArray(largeArray) // returns an array of arrays
let responses = []
for(const chunk of chunks){
const query = createQueryStringFromArray(chunk)
const response = await sendQuery(query) // post to API
responses = [...responses, response] // keep hold of results
}

你可以这样使用JSON:

let createdJson = JSON.stringify(myIntArray);
// here send your request with :
sendRequest("http://url/?json=" + createdJson);

然后,在另一边你使用类似的东西:

在这个例子中,我使用PhP。

$intArray = json_decode($_GET["json"]);
// now you have your int array

相关内容

  • 没有找到相关文章