RxJS去嵌套callback

我想做一些事情:

Rx.Observable.of(userToken) .flatMap(verifyToken) .flatMap(getUserInformation) .flatMap(createUser) .flatMap(signNewToken) .subcribe({ next: result => useResult(result), error: error => handleError(error) }) 

我试图避免的是一个callback混乱。 在我的代码中,像verifyToken这样的verifyToken是Observables,我想链接它们。 这种模式是否正确? 因为现在只要其中一个内部做observer.error(new Error('problem')) ,链崩溃,我的error handling程序不会被调用。 我怎样才能改善这个?

我认为错误确实会传播到您的订阅。 这应该模拟你的情况:

 const Rx = require('rxjs/Rx'); const Observable = Rx.Observable; let userToken = Observable.of(42); let verifyToken = Observable.range(1,3); let getUserInformation = Observable.of('whatever'); let createUser = Observable.create(observer => { observer.error(new Error('problem')); }); Observable.of(userToken) .flatMap(val => verifyToken) .flatMap(val => getUserInformation) .flatMap(val => createUser) .subscribe({ next: result => console.log("Next:", result), error: error => console.log("Error subscriber:", error.message) }); 

控制台中的输出如预期的那样:

 Error subscriber: problem