语境
从计划工具调用 API 以返回雇主的事件。如果某个雇主没有任何事件,API 将返回 422(相当奇怪的行为,我只希望一个空数组 - 但我无法控制该 API)。
我正在使用 javascript/jquery (在科尔多瓦应用程序中,但这不重要?)并在浏览器中运行。如果 API 返回 1 个或多个事件,一切都会很好。
代码片段
let eventPromises = [];
let projectPromises = [];
let completeEvents = [];
$.ajax({
url: baseUrl + `resources/${ID}/events`,
type: "GET",
headers: {
"apikey": apikey
}
}).then(function(events) {
events.entities.forEach(event => {
eventPromises.push(
//get Event data
$.ajax({
url: baseUrl + `events/${event[0].entityValue}`,
type: "GET",
headers: {
"apikey": apikey
}
}).then(function(detailedEvent) {
projectPromises.push(
//Get project data
$.ajax({
url: baseUrl + `resources/${detailedEvent.entities[0][23].entityValue}`,
type: "GET",
headers: {
"apikey": apikey
}
}).done(function(project) {
let eventObj = new Object();
eventObj.eventData = detailedEvent;
eventObj.projectData = project;
completeEvents.push(eventObj)
}));
}));
});
}).then(function() {
Promise.all(eventPromises)
.then(() => {
Promise.all(projectPromises)
.then(() => {
if (completeEvents != null && completeEvents.length > 0) {
//Here everything works and I append some html
})
})
})
错误(在浏览器控制台中) jquery.min.js:2 GET http://localhost:3000/proxy/https*****events%3FbeginDate%3D01%2F01%2F2021%26endDate%3D16%2F01%2F2021 422 (422 )
问题
有谁看到我做错了什么?
也可以随意评论代码。我知道它可能看起来很奇怪(链接,并且可能是错误的原因),但这是我现在能想到的最好的。我需要调用多个端点来获取所有数据(api 不提供批处理或任何东西)。
谢谢您的帮助。