Win*_*hao 3 rxjs angular-http angular
目前我的代码是通过在彼此内部嵌套 observables 来实现的...
makeRequest() {
return this.http.get().map((response: Response) => {
return this.http.get(response.doSomething());
}
}
Run Code Online (Sandbox Code Playgroud)
当我需要使用它时,我也使用嵌套订阅它们......
我很确定这不是正确的方法,现在我需要一种方法来做一些事情:
-> 发出请求 -> 检查回复 -> 如果回复表明令牌已过期 -> 获取新令牌并再次执行请求 -> 否则将结果传递
实现这一目标的推荐方法是什么?
非常感谢,
使用 flatMap 或 switchMap 并有条件地返回不同的 Observable
auth() {
return this.http.get().flatMap((response: Response) => {
if (token not expire....) {
// pass on the response
return Observable.of(response)
}
return this.http.get(response.getToken()).mapTo(Observable.throw('Retry'));
}).retry()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |