我正在尝试创建一个处理技术错误的服务,但我遇到了一个问题。 如果我执行catch,则返回项的类型会更改:
Observable.of(1, 2, 3).subscribe(
item => {}, // item type is number
error => {}
);
Observable.of(1, 2, 3).catch(error => {
// do something
throw error;
}).subscribe(
item => {}, // item type is number | {}
error => {}
);
有没有办法在捕捉可观察物时将物品类型仅保留为数字?
上下文: 我试图通过多种服务分享Web服务的句柄:
也许我不是这样做的好方法,任何建议/样本都会受到重视。
感谢
答案 0 :(得分:1)
检查this
请记住从catch函数返回一个observable
不要在错误函数中抛出错误,.catch的目的是在不破坏流的情况下提供回退值。这个回退必须是另一个可观察的(虽然你仍然会在订阅的第一个参数上获得observable的内容)。
Observable.of(1, 2, 3).catch(error => {
const fallbackValue: number = 42;
Rx.Observable.of(fallbackValue);
}).subscribe(
item => {}, // item type is number
error => {}
);