如何处理打字稿中共享可观察对象中的错误?
How do I handle errors in a shared observable in typescript?
我偶然发现了一个问题,并且很难找到有类似问题的人,这可能表明我正在做一些我不应该做的事情..
我正在做一个看起来像这样的 http 请求
return this.httpClient.post(`${this.route}/typegroups`, JSON.stringify(typeGroup)).pipe(share());
我订阅了两次返回的可观察对象,并希望在发生错误时(当然如果一切顺利的话)通知两个订阅者。
现在只有第一个订阅者收到错误通知
第一个订阅者:
obs.subscribe((next:any) => {
//Success Code
},
error => {
this.notificationService.showError(error.message)
})
第二个订阅者
obs.subscribe(next => {
console.log("EVERYTHING WENT WELL")
},
error => {
console.log("ERROR")
},
() => console.log("COMPLETED"));
第一个订阅者收到错误通知并执行错误方法,而另一个订阅者正在执行下一个方法。这让它认为一切顺利。
知道为什么会这样吗?
也许还有更好的方法?
非常感谢,我目前正在绞尽脑汁寻找解决方案..
这实际上以某种方式在一夜之间自行解决了。我不知道为什么或如何,但现在它起作用了...
我偶然发现了一个问题,并且很难找到有类似问题的人,这可能表明我正在做一些我不应该做的事情..
我正在做一个看起来像这样的 http 请求
return this.httpClient.post(`${this.route}/typegroups`, JSON.stringify(typeGroup)).pipe(share());
我订阅了两次返回的可观察对象,并希望在发生错误时(当然如果一切顺利的话)通知两个订阅者。 现在只有第一个订阅者收到错误通知
第一个订阅者:
obs.subscribe((next:any) => {
//Success Code
},
error => {
this.notificationService.showError(error.message)
})
第二个订阅者
obs.subscribe(next => {
console.log("EVERYTHING WENT WELL")
},
error => {
console.log("ERROR")
},
() => console.log("COMPLETED"));
第一个订阅者收到错误通知并执行错误方法,而另一个订阅者正在执行下一个方法。这让它认为一切顺利。 知道为什么会这样吗? 也许还有更好的方法?
非常感谢,我目前正在绞尽脑汁寻找解决方案..
这实际上以某种方式在一夜之间自行解决了。我不知道为什么或如何,但现在它起作用了...