我有一个充满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