如何使用可能引发异常并通过可观察捕获机制处理此异常的函数启动Observable链?
示例:
createObservable(withFunctionThatThrowAnException())
.catch( err => {})
.subscribe(data => {})
如果withFunctionThatThrowAnException
抛出一个异常,那么可观察链已经开始了,并且它是一个未捕获的异常,observable.catch无法捕获它。
使用bluebird和Promises,我会做到:
Promise.try(() => createObservable(withFunctionThatThrowAnException()))
.then(data => {})
.catch(err => {})
与Observables等效吗?
答案 0 :(得分:3)
直接的等价物是defer
,我想:
Observable.defer(() => createObservable(withFunctionThatThrowAnException()))
.subscribe(console.log);