Angular 如何将转换器管道添加到http?

Angular 如何将转换器管道添加到http?,angular,Angular,我不会对我所有的回答做一些改变: post(url, body) { return this.httpClient.post(url, body).pipe((result) => transform(result)); } transform(data){ data = ... return data; } 我该怎么做呢?你必须使用地图才能做到这一点 import { map } from 'rxjs/operators'; ... post(url, body

我不会对我所有的回答做一些改变:

  post(url, body) {
    return this.httpClient.post(url, body).pipe((result) => transform(result));
  } 

transform(data){
data = ...
return data;
}
我该怎么做呢?

你必须使用地图才能做到这一点

import { map } from 'rxjs/operators';

...

post(url, body) {
    return this.httpClient.post(url, body).pipe(map(result => this.transform(result)));
}

transform(data){
    data = ...
    return data;
}

仅供参考,您可以只做mapthis.transform,因为map将函数作为其参数。@bryan60这在typescript中几乎任何地方都是一个坏主意,因为这不会将this上下文绑定到transform函数。当然会。它是在这个上下文中定义的。。。而且你的地图功能应该是纯粹的,而不是依赖于外部的state@bryan60不,没有装订。我建议你自己试试。这取决于你如何定义你的函数。问题在于何时创建或不创建新的作用域,在访问注入的服务时,这一点至关重要。作为一种习惯,我将对它们进行如下定义:fn=args=>val如果您执行fnargs{return val},那么不,您将创建新的分数。但是你的笼统声明是通过我推荐的绑定方式创建新的范围,这是不正确的。更好地理解何时创建范围,何时不创建范围,并根据用例采取相应的行动。