Estoy tratando de obtener el valor de retorno de una función de espera asíncrona, pero no obtengo el valor que necesito.
const filterStuff = async (filters) => { //some code here await client<StuffPagination>(endpoint,body) .then((stuffresult)=>{ const {stuff,page} = stuffresult; let fiteredStuff as Stuff[] = stuff; console.log(filteredStuff); return filteredStuff; }) .catch(()=>{ //do something }) .finally(()=>{ //do something }); }; ¿Cómo obtengo el valor de retorno real Stuff[] de la función async-await fuera de la función? Intenté usar .then para obtener los datos, pero el registro de los datos siempre está indefinido, mientras que el console.log(filteredStuff) que estoy devolviendo tiene un valor. ¿Se me escapa algo?
useEffect(() => { filterStuff(BaseFilters).then((data) => { console.log(data); }); }, []);No regresa al lugar requerido. Consulte a continuación el código actualizado que espera la respuesta.
const filterStuff = async (filters) => { try { //some code here const stuffresult = await client<StuffPagination>(endpoint,body); const {stuff,page} = stuffresult; let fiteredStuff as Stuff[] = stuff; console.log(filteredStuff); return filteredStuff; } catch { //do something } finally { //do something } };le falta una declaración de devolución en su función filterStuff
const filterStuff = async (filters) => { //some code here return client<StuffPagination>(endpoint,body) .then((stuffresult)=>{ const {stuff,page} = stuffresult; let fiteredStuff as Stuff[] = stuff; console.log(filteredStuff); return filteredStuff; }) .catch(()=>{ //do something }) .finally(()=>{ //do something }); };