【发布时间】:2019-01-13 06:04:14
【问题描述】:
我在尝试调用两个异步 http 请求时遇到了一个问题,我试图调用两个异步 http 请求,然后在成功完成后我想做第三个以获取最后一个信息,然后再让用户访问该页面。
到目前为止,这是我的代码:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (this.recruteurService.getUserInfo() &&
this.recruteurService.getIndividuPro() &&
this.recruteurService.getEtablissement()) {
return true;
}
return forkJoin(
this.recruteurService.rechercherUserInfo(),
this.recruteurService.rechercherIndividuProfessionnel())
.mergeMap(([userInfo, individuPro]) => {
if (userInfo && individuPro) {
this.recruteurService.setUserInfo(userInfo);
this.recruteurService.setIndividuPro(individuPro);
} else {
return false;
}
return this.recruteurService.rechercherEtablissementParIdRce(individuPro.etablissements[0]).map(
(etablissement: Etablissement) => {
if (etablissement) {
this.recruteurService.setEtablissement(etablissement);
return of(true);
}
return of(false);
});
});
}
问题是我遇到了一个错误:
src/app/guard/initialization.guard.ts(32,17) 中的错误:错误 TS2345: '([userInfo, individuPro]: [any, Individu]) 类型的参数 => false | Observable>' 不可分配给参数 type '(value: [any, Individu], index: number) => 可观察输入>'。输入'假| Observable>' 不可分配给类型 '可观察输入>'。 类型“false”不可分配给类型“ObservableInput>”。
但我不知道是什么问题。
【问题讨论】:
标签: angular rxjs observable fork-join