小编Aij*_*jaz的帖子

用于可观察链接的仓促 forkjoin 替代 rxjs?

我有 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)

rxjs rxjs5 angular

7
推荐指数
1
解决办法
486
查看次数

如何在 Angular 路由防护中使用 Observable?

在我的角度路由模块中,我在默认主页时使用基本导航,现在在某些情况下,我想决定导航哪条路线。这就是我的应用程序路由的样子。

 { 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)

javascript angular angular-router-guards angular-router

0
推荐指数
1
解决办法
2071
查看次数