如何更改对象数组的 Observable 的值

How to change the value of an Observable of Object Arrays

如何更改对象数组的 Observable 的单个 属性。在我的服务中,我正在执行一个 http 请求以获取所有任务:

getTasks(): Observable<Task[]> {
  return this.httpClient.get<Task[]>('http://localhost:8080/tasks');
}

这是我的任务界面:

export interface Task {
  id: number;
  name: string;
  dueDate: Date;
  taskstatus: TaskStatus;
  user: User;
}

问题是,http 请求的响应对象的到期日期只是一个字符串,虽然我在数据库中将它定义为时间戳,但我只是得到一个时间戳作为字符串 “2021-09-25T11:36:29.000+00:00”。

现在我的问题是如何更改 Observible 中的值,例如: task.dueDate = 新日期(task.dueDate) 这样我就可以将所有日期字符串转换为实际的日期类型。 (对于数组的所有对象)

map 运算符用于可观察对象的数据转换,您将使用 rx map 内部的数组 map 来转换数组中的每个对象:

getTasks(): Observable<Task[]> {
  return this.httpClient.get<Task[]>('http://localhost:8080/tasks').pipe(
    map(tasks => tasks.map(task => {
      // do whatever to the task
      task.dueDate = new Date(task.dueDate);
      return task;
    }))
  );
}

您可能需要 fiddle 输入才能编译。