Angular2 可观察

Angular2 Observable

我想运行首先验证http get函数,一旦成功,然后运行另一个函数然后return返回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 然后 return 可观察。

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

虽然我没有尝试过,但您需要将登录响应通过管道传递给一系列运算符。沿着这些线的东西:

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

您不需要创建新的 Observable。