Извините за заголовок, я не мог придумать лучшего.
У меня есть этот кусок кода, который в основном:
- фильтр для действительного (не ноль)массивы cron epressions
- сопоставляют каждое выражение cron с вызовом службы
this.formGroup.valueChanges.pipe(
op.filter(v => !!v.cronExpressions),
op.map((v): string[] => v.cronExpressions),
op.map((v: string[]) => v.map(cron =>
this.cronService.getReadableForm(cron).pipe(
op.map(this.toDescription),
op.map((description): CronExpressionModel => ({ cron, description }))
)
)
),
// What now?
).subscribe((cronExpressions: CronExpressionModel[]) => ...) // Expected result
Я хотел бы получить на subscribe()
массивCronExpressionModel
вернулся со всех вызовов службы.
Я не могу обернуться вокруг этого.
Текущее решение, согласно ответу Мартина:
filter(v => !!v.cronExpressions),
map(v => v.cronExpressions),
map(cronExprs => cronExprs.map(c => this.invokeCronService(c))),
mergeMap(serviceCalls => forkJoin(serviceCalls).pipe(defaultIfEmpty([])))