Я работаю над инструментом, который занимается извлечением данных из Jira. Я могу найти множество примеров с цепочкой нескольких http-вызовов, которые можно выполнять один за другим, используя данные предыдущего вызова. Но на что я наткнулся, так это на то, как ждать, пока все внутренние вызовы разрешатся, и что-то делать с данными, и только после этого разрешать внешние.
То, что происходит прямо здесь, заключается в том, что метод this.developmentService.getData (this.filter) не ожидает завершения подсчета историй в каждом эпосе во внутреннем this.developmentService.getStoriesForEpic (epic.key ) и это проблематично, потому что после этого мне нужно применить дополнительные фильтры на основе этих показателей.
updateChart() {
this.loading = true;
if (this.dataRequest) { this.dataRequest.unsubscribe(); }
this.developmentService.getData(this.filter).toPromise().then(initiatives => {
initiatives.map((initiative) => {
initiative.devEpics.map((epic) => {
return this.developmentService.getStoriesForEpic(epic.key).toPromise().then(stories => {
Promise.all(stories.map((story) => {
if (story.status == "To Do") {
epic.storiesToDo++;
}
else if (story.status == "In Progress") {
epic.storiesInProgress++;
}
else if (story.status == "Done") {
epic.storiesDone++;
}
}))
})
})
})
this.data=initiatives;
})
Я пробовал несколько подходов, но, похоже, не могу этого достичь. Любая помощь приветствуется! Заранее спасибо