2016-02-20 37 views
2

我想运行第一次认证http get函数,一旦成功,然后运行另一个函数,然后返回Observable,所以可以订阅并继续与其他方法一起使用。Angular2 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()方法的另一个函数,但它不会与目前的可观察

回答

3

虽然我没有试过被链接,你需要对管道的登录运营商链的响应。沿着这些线:

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

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