export async function downloadAndSyncData( user_id: number ): Promise<boolean> { try { const { status, data } = await getProtocols(user_id); let { sets } = data; if (status === 200) { if (sets !== undefined) { console.log("entrou aqui"); sets.map(async set => { const callDetail = detailData(set); let obj = await insertDataStorage("DetailSchema", callDetail); }); } else { console.log("undefined sets"); } return true; } else { return false; } } catch (error) { throw error; } finally { await syncOptions(); } }Tengo una función en mi aplicación que hace una solicitud de conjuntos para mostrar en una lista. sets es una matriz de objetos, que proviene de mi backend en laravel. retorno de laravel
La cosa es que a veces eso funciona, a veces no. Y no entendí por qué. Funciona con objetos pequeños.
En cartero, también está bien. cartero
Mover la desestructuración al interior if (status === 200) { check. Si el estado no es 200, es posible que los data no estén definidos y no pueda desestructurar un valor undefined .
O puede reescribir su verificación así: let sets = data?.sets; , de esa manera primero verificará que los datos estén aquí, luego obtendrá el valor de propiedad sets .