packages.forEach((pack) => {
this.packageService.getPackage(pack.id)
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((newPack: Package) => {
this.verbosePackages.push(newPack);
this.sharedPackagesService.updatePackages(this.verbosePackages);
})
}
getParameters(): void {
this.verbosePackages.forEach((pack) => {
this.packageParameters = this.packageParameters.concat(pack.packageParameters);
})
this.getParameterVisibilities();
}
У меня есть две такие функции.
Как мне сделать так, чтобы функция getParameters() запускалась только после того, как в первой функции в цикле каждый элемент массива сделал запрос к серверу, получил от него ответ и добавил этот ответ в массив verbosePackages?
Можно, конечно, написать костыль, который перед запуском функции getParameters() будет сверять длину массивов packages и verbosePackages, но это явно очень плохое решение.
В целом у меня много подобных ситуаций, когда мне нужно работать с каким-то массивом, но я не знаю, пришли ли в него все необходимые данные с бекенда. Какие существуют решения, чтобы вызывать какой-то триггер, который будет уведомлять о том, что все запросы к базе данных были выполнены?