Map <TaskParameters,Array <list >>()似乎不起作用

时间:2019-09-19 09:55:11

标签: angular typescript dictionary

我使用Map来存储数据,该数据取决于我在类下定义的用于获取这两个参数的2个参数

export class TaskParameters {
serviceId: number;
servicePartnerId: number;
constructor(_serviceId, _servicePartnerId) {
    this.serviceId = _serviceId;
    this.servicePartnerId = _servicePartnerId;
   }
}

并在“映射本地变量”下定义以将其保存在本地

private serviceTaskList = new Map<TaskParameters, Array<ServiceWithTasks>>();

这是我要提出API请求时的代码,我不想再提出其他API请求之前检查是否获得了这些数据,但我知道我的数据有时是空列表,如下所示:[ ] 当我登录MAP列表时,我发现上面没有保存任何内容,而且似乎无法正常工作。

public hasTask(rowIndex: number): boolean {
let hasTasks = false;
const formGroup = this.getFormGroup(rowIndex);
const contractPosition = this.formDataExtensionData.get(formGroup);
const taskParents = new TaskParameters(contractPosition.serviceId, contractPosition.servicePartner.servicePartnerId);
if (!this.serviceTaskList.get(taskParents)) {
  this.servicesService
    .getServiceTasks(contractPosition.serviceId, this.clearingCaseId, contractPosition.servicePartner.servicePartnerId)
    .pipe(takeUntil(this.ngUnsubscribe))
    .subscribe((data: ServiceWithTasks[]) => {
      this.serviceTaskList.set(taskParents, data);
      hasTasks = data.length > 0 ? true : false;
    });
  return hasTasks;
   }
}

0 个答案:

没有答案