Estoy desencadenando un evento de submit desde un componente principal, que emite una image data-url y un body text de dos componentes secundarios al principal:
<ImgUploadComponent :triggerEmit="state.submit" @emitImage="getImage"/> <EditorComponent :triggerEmit="state.submit" @emitBody="getBody"/>La imagen y el cuerpo se recuperan con estas funciones:
const getImage = async (image) => { form.image = await image // arrives after storeRecord } const getBody = async (body) => { form.body = await body // arrives before storeRecord }y enviado a la base de datos en esta función:
const storeRecord = async () => { state.submit = true await getImage await getBody console.log(form.image) // returns undefined form.post('/admin/posts') } El problema es que el body llega antes de que se envíe form.post pero la image llega después. Cuando escribí esta función, solía funcionar, pero ahora no funciona y no puedo entender por qué. ¿Cómo lo haces bien?
Gracias a la sugerencia de @Estus, pude usar un watcher para resolver mi problema:
const storeRecord = () => { state.submit = true watch(() => form.image, () => { form.post('/admin/kreationen') }) } const getImage = (image) => { form.image = image } const getBody = (body) => { form.body = body }