【发布时间】:2022-02-16 10:07:17
【问题描述】:
我目前正在从 API 获取数据,并且需要执行多个 GET 请求(使用 axios)。在所有这些 GET 请求完成后,我返回一个已解决的承诺。
但是,我需要根据数组列表自动执行这些 GET 请求:
function do_api_get_requests() {
return promise = new Promise(function(resolve, reject) {
API_IDs = [0, 1, 2];
axios.get('https://my.api.com/' + API_IDs[0])
.then(data => {
// Do something with data
axios.get('https://my.api.com/' + API_IDs[1])
.then(data => {
// Do something with data
axios.get('https://my.api.com/' + API_IDs[2])
.then(data => {
// Do something with data
// Finished, resolve
resolve("success");
}
}
}
}
}
这可行,但问题是 API_IDs 并不总是相同的数组,它会改变。所以我不确定如何自动链接这些请求。
【问题讨论】:
-
请求需要按顺序进行还是可以并发执行?
-
没有
async/await,使用递归方法。将您仍需要访问的 api id 作为参数传递。 -
仅供参考,如果您显示真实代码,包括请求的相关处理以及调用者如何使用它,而不是伪代码,人们可以更好地帮助您。这适用于这里的所有问题,而不仅仅是这个问题。
标签: javascript node.js promise es6-promise chain