У меня есть последовательность RxJS следующим образом:
(элемент управления Angular FormControl
)
control.valueChanges.pipe(
concatMap(cronExprs => from(cronExprs as Array<string>)),
concatMap(cron => this.invokeCronService(cron)),
toArray()
).subscribe(cronExprs => this.setCronExpressionModels(cronExprs))
Скажем, в массиве cronExprs есть три элемента ['..', '..', '..']
.Я вижу, что во время отладки clojure concatMap(cron => this.invokeCronService(cron))
вызывается три раза, но никогда не вызывается toArray
, и очевидно, что clojure подписки тоже никогда не вызывается.Кажется, последовательность не завершается правильно.
invokeCronService
:
private readonly invokeCronService =
(cron: string): Observable<CronExpressionModel> =>
this.cronService.describeCron(cron).pipe(
map(result => result.get()),
map((description): CronExpressionModel => ({ cron, description }))
)
describeCron
- это просто:
public describeCron(cronExpression: string): Observable<Result<string>> {
return of(Result.valid('', cronExpression))
}
Что я делаю не так?