У меня есть массив данных из полезной нагрузки, и я хотел бы l oop через данные и обновить их в базе данных, после того, как все данные были обновлены, я хочу обновить данные кэша, которые я получаю от redis
Полезная нагрузка
"data": [
{
"surveyFieldId": 384471,
"answer": "new answer"
},
{
"surveyFieldId": 384472,
"answer": "new answer"
}
]
Метод обновления
async updateDataSurveyField (dataSurveyId, { surveyFieldId, answer, needRevision }) {
let params = {
answer
};
let DataSurveyField = await this.db.DataSurveyField.update(params, {
where: {
dataSurveyId,
surveyFieldId
}
});
return DataSurveyField;
}
L oop и кэш обновлений
if (data) {
for (let index = 0; index < data.length; index++) {
await this.updateDataSurveyField(object.id, data[index], method);
}
}
await updateCacheReport({
db: this.db,
key: report.uuid
});
Метод updateCache снова запрашивает данные из базы данных и вставляет их в redis.
Моя проблема заключается в том, что метод updateCache был запущен, когда обновление l oop еще не завершено, поэтому, если я отправляю 5 ответов, только 2 или 3 данных были обновлены в кеше. Есть ли способ, которым я могу убедиться, что весь ответ сначала обновляется, а затем обновлять кэш?
Спасибо.