В моем приложении angular 8 я подписываюсь на наблюдаемую, которая должна сливаться с другой наблюдаемой для данного набора входных наблюдаемых, заканчивающихся в массивах.
Код выглядит следующим образом:
const obs1 = Observable.of([1,2,3]);
const obs2 = Observable.of([4,5,6]);
const obs3 = Observable.of([7,8,9]);
const obs = [obs1, obs2, obs3]; // obs1-3 are three observables
from(obs).pipe(
mergeAll(),
mergeMap(res => res.map(val => functionReturningAnObservable(val))),
mergeAll(),
finalize(() => someSideAction())
).subscribe();
Код работает нормально. Однако мой вызов завершения завершается сбоем из-за превышения размера стека вызовов (побочное действие не особенно легкое). Это происходит, когда я увеличиваю количество входных наблюдаемых или количество значений в массивах. В трассировке стека я вижу, что существует около 180 вызовов, связанных с наблюдаемой выше. Как я могу выполнить вызов finalize вне стека вызовов observables?