返されるObservable
に値を渡すために、Observable<any>
を返しますが、別の非同期タスクを完了する必要がある(Observable<string>
)を返す関数を作成したいとします。角2 rxjsネストされたオブザーバブル
@Injectable()
export class MyComponent
{
GetAuthToken = function() : Observable<string>
{
return this._storageService.GetAsString('authToken');
}
GetData = function(authToken) : Observable<any>
{
let headers = new Headers();
headers.append('authToken', authToken);
var getUsers = this._http.get('/api/endpoint', { headers: headers })
.map((resonse: Response) => resonse.json()));
return getUsers;
}
DoIt = function() : Observable<any>
{
this.GetAuthToken().Subsribe(t=> {
return GetData(t);
})
}
}
だから代わりのGetData関数にauthTokenのパラメータを渡す、私はのGetData関数内GetAuthToken機能を実行したい、その完了を待って、まだ観察できるHTTPを返します。 、ではないのGetDataが観察加入者を返すドイト機能を実行
完全に無関係な質問を使用しても可能である。なぜあなたは構文を使用します: 'GetAuthToken = function(){...}'と 'GetAuthToken(){...}'ではありません。それでも同じじゃない?) – martin
'Observable.forkJoin'を使用して、これをチェックしてください:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md –
@Martin http://stackoverflow.com/question/336859/javascript-function-declaration-syntax-var-fn-function-vs-function-fn – gunwin