等同于 Promise.try 和 Observables?

Equivalent to Promise.try with Observables?

我如何启动一个带有可能抛出异常的函数的 Observable 链,并通过 observable catch 机制处理这个异常?

示例:

createObservable(withFunctionThatThrowAnException())
            .catch( err => {})
            .subscribe(data => {})

如果 withFunctionThatThrowAnException 抛出一个异常,需要启动的可观察链只是一个未捕获的异常,observable.catch 无法捕获它。

有了 bluebird 和 Promises,我就可以做到了 :

Promise.try(() => createObservable(withFunctionThatThrowAnException()))
            .then(data => {})
            .catch(err => {})

是否有 Observables 的等价物?

直接等同于 defer,我猜:

Observable.defer(() => createObservable(withFunctionThatThrowAnException()))
 .subscribe(console.log);