2

我想先运行验证 http get 函数,一旦成功,然后运行另一个函数,然后返回 Observable,这样它就可以订阅并继续与其他方法一起使用。

return new Observable(observer => {
            this.api
                .login(username, password)
                .subscribe(
                    data => {
                        this.data = this.dataParse(data);
                        observer.next(this.data);
                        observer.complete();
                    });


            // run another http.get to get user profile, before sending back Observable
        });

我不确定如何运行另一个 http.get 然后返回 observable。

我可以在 .subscribe() 方法中运行另一个函数,但它不会与当前的 Observable 链接

4

1 回答 1

3

虽然我没有尝试过,但您需要将登录响应通过管道传递给一系列操作员。这些方面的东西:

return this.api
           .login(username, password)
           .map((res:Response) => res.json())
           .mergeMap(data=> $http.get(data.id));

你不需要创建一个新的 Observable。

于 2016-02-20T06:02:41.737 回答