Traté de hacer algunas búsquedas y encontré Wait for a Function to Finish en JavaScript , pero estoy luchando con la búsqueda en sí y cómo usarla.
Mi caso de uso:
Tengo una función que llena un contexto en reacción, y esta función es una función asíncrona para funcionar correctamente con la API. Después de una ejecución exitosa, se completa un estado específico en el contexto.
Uso esta función dentro de un onClick para un botón.
Lo que quiero lograr:
Quiero tomar una decisión dentro de onClick dependiendo de la salida de la función de contexto.
ex:
supongamos que tengo una función en contexto devuelve un objeto de tarea pendiente
const [state, setState] = useState({ error: null, isTodoLoading: false, todo: {}, }); const getSpecificTodo = async (projectID) => { setState(ps => ({ ...ps, todo: {}, error: null, isTodoLoading: true, })); await API.getTodo(projectID) .then(res => { setState(ps => ({ ...ps, todo: res.data, error: null, isTodoLoading: false, })); }) .catch(e => { setState(ps => ({ ...ps, todo: {}, error: formatError(e, `Failed To Retrieve Project Consent!`), isTodoLoading: false, })); }) }Estoy usando esta función de contexto dentro de onClick de un botón para mostrar un Modal con el todo
const handleOnClick = (projectId) => { getSpecificTodo(projectId) //Here I want to wait till the getSpecificToDo finishes its work and then act upon it //I want to see if there is no todo returned after this successful return then i'll redirect user //to another page, but if there's todo i'll display a modal with the data returned }Espero haber explicado claramente lo que quiero hacer.
Estoy usando: