2016-02-20 7 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, а затем вернуться к наблюдаемому.

я могу запустить другую функцию внутри метода .subscribe(), но тогда он не будет связан с текущим

наблюдаемыми

ответ

3

В то время как я не пробовал, вам нужен трубу ответ для входа в цепочку операторов. Что-то в этих строках:

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

Вам не нужно создавать новые наблюдаемые.

Смежные вопросы