Vat*_*ato 1 arrays mapping observable rxjs
我目前正在以这种形式从服务器收到响应。
{
plateNumber: string;
vehicleId: number;
garage: {
garageName: string;
};
vehicleType: {
vehicleType: string;
};
vehicleStatus: {
status: string;
};
vehicleModel: {
vehicleModelName: string;
};
vehicleOwner: {
ownerName: string;
};
contactPhone: number;
techInspectDueDate: Date;
additionalInfo: string;
lastDriver: string;
}
Run Code Online (Sandbox Code Playgroud)
但只想获取属性(字段)。意思只是字符串和数字。
{
plateNumber: string;
vehicleId: number;
garageName: string;
vehicleType: string;
status: string;
vehicleModelName: string;
ownerName: string;
contactPhone: number;
techInspectDueDate: Date;
additionalInfo: string;
lastDriver: string;
}
Run Code Online (Sandbox Code Playgroud)
目前我正在使用 HTTP post 响应从服务器获取对象。
getVehicles(): Observable<Vehicle[]> {
const url = `${this.serviceUrl}`;
return this.http.post<Vehicle[]>(url, {} );
}
Run Code Online (Sandbox Code Playgroud)
我需要在检查对象是否具有这些特定字段(车辆类型、状态、车辆型号名称、所有者名称、车库名称)时映射响应。当我不确定对象是否具有这些字段或者它是否已经是我需要的值(explateNumber)时,如何映射响应?
使用 map 并返回任何你想要的。
getVehicles(): Observable<Vehicle[]> {
const url = `${this.serviceUrl}`;
return this.http.post<Vehicle[]>(url, {}).pipe(
map(vehicles => vehicles.map(vehicle => {
return {
plateNumber: vehicle.plateNumber;
vehicleId: vehicle.vehicleId;
garageName: vehicle.garage.garageName;
//...map all other fields manually
};
})),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3326 次 |
| 最近记录: |