Tengo esta acción en vuex que básicamente llama a dos API. modificarResultados tiene una función de devolución de llamada y quiero esperar a que finalice esta devolución de llamada y luego ejecutar updateResults. Esta es mi configuración:
//vuex
import {modifyResults, updateResults} from './api'; const actions = { async modifyResults({ dispatch }) { try { // waiting for ModifyResults to finish entirely but after // functionOne from api folder is finished // it executes updateResults from here and then executes // functionTwo from api folder await modifyResults(); dispatch('updateResults'); } catch (error) { // catch errors } finally { // loading variable set to false } }, async updateResults({ dispatch }, ) { try { const { sources } = await updateResults(); dispatch('setItems', sources); } //blah blah }, }// api.js
export const modifyResults = async () => { await functionOne({someApi}, async functionTwo(status, resposne) => { const { data } = await api.post(//blah blah); return data } ) }, export const updateResults = async () => { // blah return result },Entonces, básicamente, lo que sucede es que este es el orden en que se ejecutan estas funciones:
1- functionOne 2- updateResults 3- functionTwomientras que quiero este orden:
1- functionOne 2- functionTwo 3- updateResults