From 8e9245b37f3c2804165f613f95335026151b2f3a Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Mon, 1 Jul 2024 14:18:21 -0400 Subject: [PATCH] resolving all promises at once --- .../capability-questions.vue | 16 +++++++++++----- src/store/index.js | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue index c19c5250..494fcacd 100644 --- a/src/layouts/capability-questions/capability-questions.vue +++ b/src/layouts/capability-questions/capability-questions.vue @@ -153,12 +153,18 @@ export default { await this.mainStore.saveCapabilityQuestionAnswers(questionAnswersArray); // set recalibration properties of parts based on capability question answers - for (let answer of questionAnswersArray) { + const promiseResultMap = questionAnswersArray.map((answer, i) => { + const partData = this.partsOrQuestionsData.find(x => x.glassLocation === answer.glassLocation); + return { + resultKey: i, + promise: useMainStore().updatePartFromCapabilityQuestionAnswer(partData.parts[0], answer) + }; + }); + const resultMap = await settleAllPromises(promiseResultMap); + questionAnswersArray.forEach((answer, i) => { const partData = this.partsOrQuestionsData.find((x) => x.glassLocation === answer.glassLocation); - if (partData) { - partData.parts[0] = await useMainStore().getPartFromCapabilityQuestionAnswer(partData.parts[0], answer); - } - } + partData.parts[0] = resultMap[i]; + }); this.navigateForward(this.partsOrQuestionsData, null); } diff --git a/src/store/index.js b/src/store/index.js index 0f527f1c..95532981 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -815,7 +815,7 @@ export const useMainStore = defineStore({ }); }, - async getPartFromCapabilityQuestionAnswer(part, capabilityQuestionAnswersForPart) { + async updatePartFromCapabilityQuestionAnswer(part, capabilityQuestionAnswersForPart) { return (await globalMethods.callHttpClient({ method: endpoints.GetPartFromCapabilityAnswer.method, endpoint: endpoints.GetPartFromCapabilityAnswer.url,