Хуки Vue синхронные. Никто никого не ждёт. Не вызывайте getMediaUrls
пока не будет данных.
Если вызов происходит в шаблоне - во-первых: не используйте методы в шаблонах без крайней необходимости: вместо метода getMediaUrls
должно быть computed
свойство mediaUrls
; во-вторых: скрывайте в шаблоне отображение пока не появятся данные: v-if="currentProductData"
/v-if="currentProductData.length"
и показывайте вместо этого какой-нить loader, Vue не запросит то, что скрыто под v-if
пока условие не станет верным.
...upd: посмотрел полный код. Незачем выносить getMediaUrls
в mounted
и разрывать асинхронную цепочку. Вызывайте его сразу в getProductData
, либо если currentProductData
может меняться в иных случаях - сделайте, опять же, computed свойством. В крайнем случае можно вызывать его, повесив watch
на currentProductData
, но computed
лучше.