Angular路由器在返回observable之前不解决Promises。
创始人
2024-10-28 03:33:07
0

可以使用Rxjs的switchMap和toPromise方法将Promise转换为Observable。在路由中使用resolve来解决Promise并等待其结果。以下是一个示例:

import { Injectable } from '@angular/core';
import { Resolve } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { switchMap } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class MyResolver implements Resolve {
  constructor(private http: HttpClient) { }

  resolve(): Observable {
    return this.http.get('/api/data').pipe(
      switchMap((data: any) => {
        const promise = this.http.get('/api/otherdata').toPromise();
        return Observable.fromPromise(promise).map((otherData: any) => {
          data.otherData = otherData;
          return data;
        });
      })
    );
  }
}

在路由中使用resolve:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { MyResolver } from './my-resolver.service';
import { MyComponent } from './my.component';

const routes: Routes = [
  {
    path: 'details',
    component: MyComponent,
    resolve: {
      data: MyResolver
    }
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
  providers: [MyResolver]
})
export class MyRoutingModule { }

这将在路由被访问之前执行MyResolver中的resolve方法,并等待Promise的结果,然后使用switchMap将其包装为一个Observable以便在MyComponent中使用。

相关内容

热门资讯

必备辅助推荐!欢乐情怀怎么开挂... 必备辅助推荐!欢乐情怀怎么开挂(透视)德普之星辅助器(透牌教程有挂技术);无需打开直接搜索加薇136...
透视黑科技!熊猫辅助官网下载安... 熊猫辅助官网下载安装是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加...
分享一款!宝宝浙江辅助工具(透... 分享一款!宝宝浙江辅助工具(透视)we poker辅助器v3.3(可靠技巧有人有挂);亲,宝宝浙江辅...
透视能赢!方片十三张透视脚本(... 透视能赢!方片十三张透视脚本(透视)德州hhpoker是真的吗(存在挂教程真是有挂)这是一款可以让一...
必看攻略!龙岩闲游安卓脚本(透... 必看攻略!龙岩闲游安卓脚本(透视)aapoker真的假的(黑科技教程有挂工具)龙岩闲游安卓脚本ai黑...
玩家爆料!创思维激k透视免费下... 玩家爆料!创思维激k透视免费下载(透视)wepoker轻量版透视系统(技巧教程讲解有挂) 【无需打开...
透视好友房!优乐江西辅助器(透... 您好:hhpoker辅助器视频这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
透视线上!新九哥脚本(透视)德... 透视线上!新九哥脚本(透视)德州透视脚本(必备教程发现有挂) 了解更多开挂安装加(136704302...
玩家必看!老友广西玩有破解视频... 老友广西玩有破解视频是一款专注玩家量身打造的游戏记牌类型软件,在老友广西玩有破解视频这款游戏中我们可...
教程攻略!新道游辅助器免费版(... 哈糖大菠萝可以开挂吗是一款专注玩家量身打造的游戏记牌类型软件,在哈糖大菠萝可以开挂吗这款游戏中我们可...