代码示例如下:
/** GET heroes from the server */
getHeroes(): Observable<Hero[]> {
return this.http.get<Hero[]>(this.heroesUrl)
.pipe(
tap(_ => this.log('fetched heroes')),
catchError(this.handleError<Hero[]>('getHeroes', []))
);
}
教程指出" RxJS tap()操作符通过查看可观察值,对这些值做一些事情,并传递它们来实现这种能力。tap()回调不访问值本身。">
无论如何,我想要这样的东西:
this.log('fetched {{heroes.size}} heroes')
但是我不能得到我的手英雄。我该怎么做呢?
注意,在javascript中,'fetched {{heroes.size}} heroes'
将只是一个文字字符串。
我在下面将console.log
显示为@enno。空白提到
/** GET heroes from the server */
getHeroes(): Observable<Hero[]> {
return this.http.get<Hero[]>(this.heroesUrl)
.pipe(
tap((heroes) => console.log(`fetched ${heroes.length} heroes`)),
catchError(this.handleError<Hero[]>('getHeroes', []))
);
}
Tap不影响后续流,可以(尽可能避免)用于副作用。