gun*_*win 6 javascript rxjs rxjs5 angular
我希望创建一个函数,返回一个Observable<any>但在返回之前另一个异步任务必须完成(an Observable<string>),以便将值传递给返回的Observable.
@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);
})
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我希望在GetData函数中执行GetAuthToken函数,等待其完成,然后仍然返回http observable,而不是将authToken参数传递给GetData函数.
执行DoIt函数将返回订阅者,而不是GetData Observable
尝试使用concatMap():
DoIt() : Observable<any>
{
return this.GetAuthToken()
.concatMap(token => this.GetData(token));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3486 次 |
| 最近记录: |