Я использую Map для хранения данных, которые зависят от 2 параметров, которые я определил ниже класса для получения этих двух параметров
export class TaskParameters {
serviceId: number;
servicePartnerId: number;
constructor(_serviceId, _servicePartnerId) {
this.serviceId = _serviceId;
this.servicePartnerId = _servicePartnerId;
}
}
и определили ниже Map local variable для локального сохранения
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;
}
}