我想使用angular 2和rxjs实现一些基本流程 这就是流程:
对于每个请求,用户都可以进入:
如果失败则抛出错误。
class MyHttpWrapper {
ctor(private http:Http) {}
get (url, options) {
//Do some pre request things with the options and url
return this.get(url,options)
.map(res => res.json())
.catch((err, source) => {
// Here i want to reloging
someService.login().subscribe(res =>
//Here i want to re-execute the original request and return it to the caller of the myHttpwrapper.get() caller
).catch(err =>
//return error to the caller of the myHttpWrapper.get()
)
}
}
我该怎么做?
答案 0 :(得分:4)
我会尝试这样的事情:
return this.http.get(url,options)
.catch((err, source) => {
return someService.login()
.flatMap((res) => {
return this.http.get(url,options);
});
})
.map(res => res.json());
如果login
和第二个get
都出错,则会在subscribe
方法的第二次回调中引发错误。