есть другой подход для вашего сценария
performFirstAction().pipe(
switchMap(first =>
performSecondAction(first).pipe(mergeMap(second=>performThirdAction(first, second)))
)
),
);
в основном у вас есть first
в качестве локальной переменной, поэтому, если у вас четвертый вызов, вы можете использовать аналогичный шаблон и вкладывать их.
и если вам нужен общий шаблон, попробуйте mergeScan
, создав функцию более высокого порядка для возврата к наблюдаемой.Здесь acc
всегда является последним наблюдаемым возвращаемым значением
from([first,first=>second(first),second=>third(second)])
.pipe(mergeScan((acc,currObs)=>currObs(acc),null))