Я пытаюсь создать общий канал, который будет перехватывать ошибки и влиять на другие каналы.
Наш производитель:
const producer = () => of(1, 2).pipe(
map((primitiveValue: number) => {
if (primitiveValue === 2) {
return throwError(primitiveValue)
}
return {value: primitiveValue};
}),
);
Этот канал будет присоединен к любому производителю и будет прослушиватьза ошибки:
const genericDecorator = (observable) =>
observable
.pipe(
catchError((primitiveValue) => {
return of('some error ' + primitiveValue)
})
);
Подписка:
genericDecorator(producer())
.pipe(
map((wrapped) => {
return wrapped.value;
})
)
.subscribe((value) => {
result.push(value)
});
Я пытаюсь достичь
result = [1, 'some error 2']
И то, что я получил, это
result = [1, undefined]
Это кажется логичным, но есть ли способ пропустить один канал?