我需要帮助尝试使用superagent将项目上传到API。
单次上传中的商品限制为500.因此,如果我发送的商品超过500件,我可以将请求分解为3个单独的请求,如果上传大小为500,例。
我已经打破了请求,但现在我想知道如何向API发出多个请求。
知道如何使用superagent链接这个吗?我已经查看了多部分上传文件,但我不知道这是否是同一件事。
答案 0 :(得分:1)
如果包含数组Array.prototype.shift()
的数组求值为.then()
,则可以使用.length
,true
来安排对函数的调用,否则返回响应数组。它按顺序执行该过程。
const requests = [[..], [..], [..]];
let results = [];
let request = requests.shift();
let handleRequests = (data) => fetch("/path/to/server", {
method:"POST", body:data
})
.then(response => response.text())
.then(res => {
results.push(res);
return requests.length ? handleRequest(requests.shift()) : results
});
handleRequest(request)
.then(res => console.log(res)
, (err) => console.log(err));
注意,如果订单不是要求的一部分,您可以将Promise.all()
,Array.prototype.map()
替换为.shift()
。
let handleRequests = (data) => fetch("/path/to/server", {
method:"POST", body:data
})
.then(response => response.text());
Promise.all(requests.map(handleRequests))
.then(res => console.log(res)
, (err) => console.log(err));