Я новичок в angular и не знаю, как вызывать функцию после завершения нескольких функций. Мне не нужно, чтобы другие функции были точно по порядку, но мне нужно вызывать другую функцию после того, как весь набор этих функций завершен.
Это мой код:
global() {
this.productsService.getProducts().subscribe(res => {
this.products = res;
this.products.forEach( (product, index) => {
this.fullProductDetails[index] = new FullProduct();
this.fullProductDetails[index].product = product;
this.f1(product['a'], index);
this.f2(product['b'], index);
this.f3(product['c'], index);
});
this.initProductsChart();
});
}
f1(a: any, index: number) {
this.productsService.getSomethingByA(a).subscribe(res => {
this.fullProductDetails[index].somethingA = res;
});
}
f2(b: any, index: number) {
this.productsService.getSomethingByB(b).subscribe(res => {
this.fullProductDetails[index].somethingB = res;
});
}
f3(c: any, index: number) {
this.productsService.getSomethingByC(c).subscribe(res => {
this.fullProductDetails[index].somethingC = res;
});
}
initProductsChart() {
...
}
Я хочу, чтобы функция initProductsChart()
запускалась после того, как f1()
, f2()
и f3()
завершены для всех продуктов.
Есть ли способ сделать это, или мне нужно дождитесь, пока все функции сами доберутся до sh?