Angular 角度rxjs可观测。分叉连接404

Angular 角度rxjs可观测。分叉连接404,angular,http-status-code-404,observable,Angular,Http Status Code 404,Observable,我需要进行几个不同的服务调用来构建用户对象。其中一个调用并不总是返回数据,因为数据是可选的 我有下面的代码,但是当404遇到可选的API调用时,代码永远不会进入.map函数。我看到它在可选的URL API调用中遇到了问题,但是从来没有调用.map。是否可以将forkJoin与可能返回404响应的API一起使用 return Observable.forkJoin([ this.wmrk_http.get('required-url') .map((

我需要进行几个不同的服务调用来构建用户对象。其中一个调用并不总是返回数据,因为数据是可选的

我有下面的代码,但是当404遇到可选的API调用时,代码永远不会进入.map函数。我看到它在可选的URL API调用中遇到了问题,但是从来没有调用.map。是否可以将forkJoin与可能返回404响应的API一起使用

    return Observable.forkJoin([
        this.wmrk_http.get('required-url')
            .map((res:Response) => <user> res.json())
            .catch((res:Response) =>  Observable.empty<user>()),
        this.wmrk_http.get('required-url-2')
            .map((res:Response) => <groups> res.json())
            .catch((res:Response) =>  Observable.empty<groups>()),
        this.wmrk_http.get('optional-data-url')
            .map((res:Response) => <userData> res.json())
            .catch((res:Response) => Observable.empty<userData>()),     
    ])
    .map((data: any[]) => {
        ...
    });
返回Observable.forkJoin([
this.wmrk_http.get('required-url')
.map((res:Response)=>res.json())
.catch((res:Response)=>Observable.empty()),
this.wmrk_http.get('required-url-2')
.map((res:Response)=>res.json())
.catch((res:Response)=>Observable.empty()),
this.wmrk_http.get('optional-data-url'))
.map((res:Response)=>res.json())
.catch((res:Response)=>Observable.empty()),
])
.map((数据:any[])=>{
...
});
forkJoin
如果其中一项未发出值。因此,使用defaultIfEmpty或将
observable.empty
替换为
observable.of(null)
。看

输出是

GET https://api.github.com/users/karser 200 (OK)
GET https://api.github.com/fsdfsdf 404 (Not Found)
GET https://api.github.com/2 404 (Not Found)

[Object, null, null]
请用a扩展“不工作”。
GET https://api.github.com/users/karser 200 (OK)
GET https://api.github.com/fsdfsdf 404 (Not Found)
GET https://api.github.com/2 404 (Not Found)

[Object, null, null]