Есть довольно много вопросов подобного характера, я думаю, что это немного по-другому.
Рассмотрим следующий код:
arr = [];
this.service1.getItem()
.subscribe(item => {
Object.entries(item).forEach(([key, value]) => {
if (some_condition_true) {
this.service2.getSomeItems2(value.prop1).pipe(first())
.subscribe(result => value.xyz = result);
this.arr.push(value);
}
});
});
// This line should execute only after the 'forEach' above completes
this.someService.someMethod(arr);
Проблема в том, что я не знаю заранее, сколько раз будет звонить service2.getSomeItems2
.
Кроме того, zip
и forkJoin
принимают Observables
, но я уже подписался. Может быть, я могу tap
вместо subscribe
'. Но факт остается неизвестным о количестве наблюдаемых.