如何重复请求http?
How to make request http repeatedly?
我有一个取决于参数的 http 请求 this.parameters
:
public getData() {
this.httpClient.get<any>(`${this.URL_PATH}/getData`, {
params: HttpParamsBuilder.buildQueryParams(this.parameters),
});
}
我在模板中使用它:
{{ getData | async }}
参数可以在运行时在应用程序的某处更改。
如何在this.parameters
发生变化时重复调用此方法?
我不想像这样污染组件:
this.parameters.changes().subscribe((data) => {
this.serviceHttp.getData();
});
你是怎么解决这个问题的?
您可以使用 rxjs 运算符 switchMap(或 concatMap、mergeMap、exhaustMap 等。这取决于您想要的响应处理。https://www.learnrxjs.io/learn-rxjs/operators)
class SomeComponent {
data$ = this.parameters.changes().pipe(
switchMap(() => this.serviceHttp.getData())
);
}
并在您的模板中将其用作 data$ | async
我有一个取决于参数的 http 请求 this.parameters
:
public getData() {
this.httpClient.get<any>(`${this.URL_PATH}/getData`, {
params: HttpParamsBuilder.buildQueryParams(this.parameters),
});
}
我在模板中使用它:
{{ getData | async }}
参数可以在运行时在应用程序的某处更改。
如何在this.parameters
发生变化时重复调用此方法?
我不想像这样污染组件:
this.parameters.changes().subscribe((data) => {
this.serviceHttp.getData();
});
你是怎么解决这个问题的?
您可以使用 rxjs 运算符 switchMap(或 concatMap、mergeMap、exhaustMap 等。这取决于您想要的响应处理。https://www.learnrxjs.io/learn-rxjs/operators)
class SomeComponent {
data$ = this.parameters.changes().pipe(
switchMap(() => this.serviceHttp.getData())
);
}
并在您的模板中将其用作 data$ | async