javascript - 如何发出多个请求并将数据对象保存到新数组中
问题描述
我有两种方法,它们发出 GET 请求。第一种方法将用户对象保存到 Benutzer 数组中,而在 benutzerIDs 数组中只保存用户 ID。在第二种方法中,我想遍历 benutzerIDs 数组并将这些 ID 用于另一个 GET 请求并将对象保存到数组测试中。由于多个 ID,我在执行此请求时遇到问题。目前我无法将数据保存到测试中。如何循环遍历 benutzerID 并根据此 ID 发出请求?
getBenutzerDesVorgesetzten(id) {
axios
.get(server.baseURL + "/benutzer/vorgesetzter/" + id)
.then(response => {
this.benutzerIDs = [];
this.Benutzer = response.data;
this.Benutzer.forEach((item) => {
this.benutzerIDs.push(item.BenutzerID);
});
});
this.getAnträgeByBenutzerID();
},
getAnträgeByBenutzerID(){
this.test = [];
this.benutzerIDs.forEach((id) =>
this.test = axios.all([axios.get(server.baseURL + "/urlaubsantrag/benutzer/" + id)]))
}
解决方案
您需要使用Promise.all
and Array.prototype.map
:
getAnträgeByBenutzerID(){
return Promise.all(this.benutzerIDs.map((id) =>
axios.get(server.baseURL + "/urlaubsantrag/benutzer/" + id)])));
}
map 回调创建一个 promise 数组,一旦它们全部解决,它们就会集体返回。
推荐阅读
- ios - Disabling local video track causes crash in TwilioVideo
- html - 如何在 CSS 中除最后一页之外的每一页上打印页脚文本?
- vba - Excel add and copy row values based on the amount of matches
- portlet - 如何在 DXP for OOTB portlet 中为属性“com.liferay.portlet.display-category”分配多个值?
- objective-c - Return NSArray function from asynchronous BLOCK
- javascript - Ajax call does not return json into website body
- ubuntu - 如何在 Ubuntu 上安装 Impala?
- python - How do you merge two unequal input/list in Python3
- flutter - Get current tab of DefaultTabController
- azure-devops - How to expand all properties in returned release definition