如果错误抛出错误,则有条件触发mergeMap

时间:2018-11-23 11:27:55

标签: angular rxjs

this.activatedRoute.queryParamMap
    .pipe(
        map(params => {
            return params.get('ID'))
        }),
        mergeMap(val => {
            if(val)
                return this.GetData(val)
                .pipe(
                    map((res:any)=>{
                    return JSON.parse(res.data);
                    })
                );
            else
                throwError(new Error('ID is missing'));
        }),
    ).subscribe(x => {
        console.log(x)
    },
    err => console.log(err)
  );

我想做的是获取ID查询字符串,如果存在则触发获取请求,否则引发错误。我可以在subscribe()中执行此操作,但是那样做,我将不得不将其嵌套(在subscribe中订阅)。 但是,当我尝试引发错误时,出现以下错误: TypeError:“您在预期流的位置提供了'undefined'。您可以提供Observable,Promise,Array或Iterable。”

0 个答案:

没有答案