【发布时间】:2018-05-01 23:57:01
【问题描述】:
我正在使用 Angular 5 (RxJs 5.5.1) 编写服务,并且在以下场景中我正在尝试实现登录工作流。
...
signInBasic(user: string, pwd: string): Observable<AuthenticationStatus> {
return this.http.post('some_url', params, { observe: 'response', responseType: 'text' })
.map((response: HttpResponse<Object>) => {
this.status = response.status === 200 ? AuthenticationStatus.Authenticated : AuthenticationStatus.NotAuthenticated;
return this.status;
})
...
/* HERE */
...
}
getPrimaryInfo(): Observable<any> {}
getPermissions(): Observable<any> {}
...
在/* HERE */ 点,取决于this.status 值(特别是Authenticated)我想再触发两个HTTP 请求(通过getPrimaryInfo 和getPermissions 方法),以便从中获取一些用户的详细信息后端。两者都完成后,我想将this.status 作为signInBasic 方法的返回值返回。如果用户未通过身份验证,我无论如何都会返回 this.status 和 AuthenticationStatus.NotAuthenticated 值,因为它是之前设置的。
我一直在寻找 forkJoin,但我不明白只有在这两个 HTTP 调用完成后才能返回一些东西。
【问题讨论】: