【问题标题】:Angular2 ObservableAngular2 可观察的
【发布时间】:2016-02-20 05:30:25
【问题描述】:

我想先运行验证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 链接

【问题讨论】:

    标签: http angular observable rxjs rxjs5


    【解决方案1】:

    虽然我没有尝试过,但您需要将登录响应通过管道传递给一系列操作员。大致如下:

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

    您不需要创建新的 Observable。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2018-05-20
      • 2016-10-29
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      相关资源
      最近更新 更多