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 を実行して、オブザーバブルを返す方法がわかりません。

.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 に答える