Tengo una aplicación de reacción. En él, cuando un usuario accede al formulario, quiero abrir un modal y almacenar la respuesta de los usuarios en el estado. En base a esta respuesta, quiero realizar alguna lógica comercial y luego publicar el formulario.
Este es mi método onsubmit
async function onSubmit(submission: IPayload) { await handleModal(); await submit(submission); } async function submit(submission: ICreateAdPayload) { await api.create({ this is where all the props go}) } // Heres I set the state of the modal to open, which then chanes the open prop on another component for the modal to open. async function handleModal(submission: any) { setShowModal(true); // handle logic setShowModal(false); }Sin embargo, mi función de envío se lleva a cabo tan pronto como se abre el modal. ¿Alguna idea?
Para poder await handleModal(...) , entonces ese método debe devolver una Promise que se resolve cuando el trabajo ha terminado, suponiendo que no necesite await nada, NO necesita estar marcado como async
function handleModal(submission: any) { setShowModal(true); return new Promise(resolve => { // handle logic setShowModal(false); resolve(); }); }