我有 5 个不同的 API 调用,它们现在都链接在 forkJoin 中。我的新要求是 subscribe 应该在任何新的 observable 解决时触发。
在 rxjs 中是否有任何运算符或任何其他技巧可以保持链接,但是每次任何可观察的解决方案都应该触发它?
forkJoin(
this.myService.api1(),
this.myService.api2(),
this.myService.api3(),
this.myService.api4(),
this.myService.api5()
)
.subscribe(
([r1,r2,r3,r4,r5]) => { ... do something })
Run Code Online (Sandbox Code Playgroud) 在我的角度路由模块中,我在默认主页时使用基本导航,现在在某些情况下,我想决定导航哪条路线。这就是我的应用程序路由的样子。
{ path: '', redirectTo: 'home1', canActivate: [homepageGuard], pathMatch: 'full' },
{ path: 'home1', loadChildren: './lazyloadedmodule1' },
{ path: 'home2', loadChildren: './lazyloadedmodule2' },
{ path: 'home3', loadChildren: './lazyloadedmodule3' },
{ path: 'basehome', loadChildren: './lazyloadedmodule4' }Run Code Online (Sandbox Code Playgroud)
现在在我的路线守卫中,我像这样调用订阅。
canActivate(): Observable<any> | boolean {
return this._myService.getCurrentApp().subscribe(
(r) => {
if(r === 'app1'){
//navigate to app1homepage
} else if (r === 'app2') {
//navigate to app2homepage
} else {
// navigate to base homepage
}
},
(e) => {
console.log(e);
return false;
}
); …Run Code Online (Sandbox Code Playgroud)