管道未正确映射和错误处理角度

时间:2018-11-04 18:45:18

标签: angular rxjs observable

我在服务中有一个返回Observable的方法。当我在组件中调用方法时订阅可观察对象时,一切正常,我可以正常获得我的帐户:

this.service.getAccountDetails(username)
    .subscribe(account =>{
        this.podcasts.push(account);
    });

但是,当我尝试使用带有map和catchError的管道来实现此功能时,它什么也不会返回。

this.service.getAccountDetails(username)
    .pipe(
        map(account => {
            this.podcasts.push(account);
        }),
        catchError((error: Error) => {
            //Do some error stuff
            return of(null);
        })
    );

我调用的服务中的方法如下:

getAccountDetails(u:String): Observable<Object> { }

很明显,我必须遇到一些令人讨厌的语法错误,但是出于对上帝的爱,我找不到它。请帮忙!

2 个答案:

答案 0 :(得分:1)

将其更改为这样,就像评论中提到的JB Nizet一样,您必须订阅

this.service.getAccountDetails(username)
.pipe(
  catchError(this.errorHandler)
)
.subscribe((username) => this.podcasts.push(username););

   errorHandler(error: Error): Observable<any> {
    console.error('ERROR HANDLER', error);
    return new EmptyObservable();
  }

答案 1 :(得分:1)

除非您不转换结果,否则您无需在此处绘制地图

await page.EvaluateFunctionAsync(@"() => {
     Array.from(document.querySelectorAll('li'))
         .find(l => l.querySelector('span').innerText === 'fire').querySelector('INPUT').click();
}");