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中使用。

相关内容

热门资讯

九分钟了解!微乐智能辅助真的假... 【亲,微乐智能辅助真的假的 这款游戏可以开挂的,确实是有挂的,很多玩家在这款微乐智能辅助真的假的中打...
透视辅助!边锋老友内蒙古辅助,... 透视辅助!边锋老友内蒙古辅助,广东老友辅助,AI教程(证实有挂)-哔哩哔哩;致您一封信;亲爱边锋老友...
第三分钟明白!四川熊猫辅助软件... 第三分钟明白!四川熊猫辅助软件视频(辅助挂)其实真的是有挂(AI教程开挂辅助神器)【无需打开直接搜索...
今日头条!新星游辅助怎么购买,... 今日头条!新星游辅助怎么购买,九九山城辅助免费,解密教程(有挂助手)-哔哩哔哩;是一款可以让一直输的...
第六分钟辅助!创思维激k有辅助... 第六分钟辅助!创思维激k有辅助器吗(辅助挂)一贯真的有挂(德州论坛开挂辅助下载);无需打开直接搜索微...
科普攻略!大菠萝辅助器,四川途... 科普攻略!大菠萝辅助器,四川途游辅助软件,解密教程(确实有挂)-哔哩哔哩;四川途游辅助软件软件透视开...
第四分钟详情!阿拉斗牌辅助视频... 阿拉斗牌辅助视频开挂教程视频分享装挂详细步骤在当今的网络游戏中,阿拉斗牌辅助视频作为一种经典的娱乐方...
安装程序教程!白金岛手游辅助脚... 安装程序教程!白金岛手游辅助脚本平台,八大碗辅助器app辅助,透明挂教程(有挂详细)-哔哩哔哩;亲真...
第七分钟明白!老铁十三水脚本(... 第七分钟明白!老铁十三水脚本(辅助挂)原来确实有挂(爆料教程开挂辅助平台);打开点击测试直接进入微信...
透视黑科技!多乐找刺激脚本辅助... 透视黑科技!多乐找刺激脚本辅助,小程序卡五星辅助,攻略教程(有挂工具)-哔哩哔哩;多乐找刺激脚本辅助...