- 使用HttpClient.get等方法进行http请求,一般都是返回的一个Observable,给上层进行订阅处理
- 将响应转成响应的Model类,可以直接在HttpClient.get中指定,如果有特殊处理(比如只要响应中的一部分),那么可以在返回的Observable后继续使用pipe、map等方法结合lambda表达式进行处理,其中可以使用as来转换类型。
import { HttpClient, HttpErrorResponse, HttpParams } from ‘@angular/common/http‘;
@Injectable({
providedIn: ‘root‘
})
export class XXX {
constructor(
private readonly http: HttpClient) { }
getXXX(): Observable<ModelClass> {
return this.http.get<ModelClass>("url").pipe(
catchError((err) => this.handleError(err)));
}
getYYY(page: number = 0, size: number = 10): Observable<Array<ModelClass>> {
const params = new HttpParams()
.set(‘page‘, String(page))
.set(‘size‘, String(size));
return this.http.get<any>("url", { params }).pipe(
map(response => response.assetList as Array<ModelClass>),
catchError(err => this.handleError(err, of([] as Array<ModelClass>)))
);
}
}
原文地址:https://www.cnblogs.com/wyp1988/p/12574574.html
时间: 2024-10-09 23:08:13