如何 chain/combine Observables

How to chain/combine Observables

好的,这已经困扰我一段时间了,想知道是否有人可以告诉我一种在多个服务之间链接 Observables 的好方法。

在下面的 Auth class 示例中,从 this.api.postSignIn() 创建 Observable 以便 signInSubmit() 可以在组件中订阅它的好方法是什么?值得注意的是 this.api.postSignIn() 正在订阅 Angular2 http 请求。

这是否有点反模式,有更好的方法吗?

基本上我想实现的功能是:

我会利用 docatch 运算符,而不是在 signIn 方法中进行订阅。

这里是重构的signIn方法:

public signIn(signIn:SignInModel) {
   return this.api.postSignIn(signIn)
        .do(
            response => {
                this.tokenService.set(new TokenModel(response.token));
                this.isSignedIn = true;
            })
        .catch(
            error => {
                console.log(error);
            }
        );
}

在您的情况下,您不能订阅此方法返回的对象,因为 subscribe 方法 returns 是订阅而不是可观察对象。所以你不能订阅它...