Представьте, что у меня есть следующий код, в котором один наблюдаемый выдает ошибку, а другой преуспевает после задержки:
let observables: Observable<String>[] = [
of("string 1").pipe(delay(1000)),
throwError("error")
];
observables.forEach((observable, i) => {
observable.subscribe(val => {
console.log('success ' + i);
}, error => {
console.log('error ' + i);
})
})
forkJoin(observables).subscribe(res => {
console.log('final success');
}, error => {
console.log('final error');
});
Этот код будет регистрировать следующее:
error 1
final error
success 0
Какой оператора или обратного вызова я мог бы использовать для выполнения некоторого кода после все наблюдаемые либо успешно, либо с ошибкой? Цель состоит в том, чтобы войти в следующем порядке:
error 1
success 0
final error
Другим приемлемым результатом было бы где-то поймать ошибку, и записать в журнал:
error 1
success 0
final success
Я сделал демо: https://stackblitz.com/edit/typescript-myfstw?file=index.ts