我是Angular2和Http Observable的新手.我有一个调用Http服务并返回Observable的组件.比我订阅Observable,它工作正常.
现在,我希望在该组件中,在调用第一个Http服务之后,如果调用成功,则调用其他Http服务并返回该Observable.因此,如果第一次调用不成功,则组件返回Observable,而它返回Observable的第二次调用.
所以,问题是,链接Http调用的最佳方法是什么?有没有优雅的方式,比如monads?
我想要的是:
this._myService.doSomething().subscribe(result => {
doSomething()
});
.then( () => dosthelse() )
.then( () => dosanotherthing() )
Run Code Online (Sandbox Code Playgroud)
所以我想链接.然后像承诺一样.我如何在Rxjs中做到这一点?
this._myService.getLoginScreen().subscribe( result => {
window.location.href = MyService.LOGIN_URL;
/// I would like to wait for the site to load and alert something from the url, when I do it here it alerts the old one
});
.then (alert(anotherService.partOfTheUrl())
getLoginScreen() {
return this.http.get(myService.LOGIN_URL)
.flatMap(result => this.changeBrowserUrl())
.subscribe( result => //i want to do sth when the page is loaded//);
}
changeBrowserUrl(): Observable<any> {
return Observable.create( …Run Code Online (Sandbox Code Playgroud)