let found = false; axios .get(link) .then((response) => { response.data.map((element) => { if (element.id_ticket.toString() === nbTicket) found = true; }); console.log(found); });así que estoy tratando de obtener datos de la API y ver si el valor de 'nbTicket' está en los datos devueltos y eso se hace usando la variable 'encontrada', por lo que si registro el valor de la variable 'encontrada' fuera del método .then permanece falso incluso si el valor existe y cuando lo hago dentro de los métodos .then da el valor correcto
let found = false; axios .get(link) .then((response) => { response.data.map((element) => { if (element.id_ticket.toString() === nbTicket) found = true; }); }); console.log(found);su consola.log(encontrado); se está ejecutando se está ejecutando antes de obtener datos de api, puede llamarlo dentro o usar async await si desea llamar a console.log (encontrado); después de obtener datos de api
Se supone que debes usar la estrategia async/await, porque console.log ocurre después de la solicitud de Axios:
async function getNbTicket(){ let found = false; const { data } = await axios.get(link); data.data.map((element) => { if (element.id_ticket.toString() === nbTicket) found = true; }); return found; }Este es un comportamiento normal, debido a async y sync.
tiene dos opciones, la primera es envolver su código dentro de una función asíncrona
const checkIfTicketIsFound = async () => { let found = false; const { data } = await axios.get(link); data.map((element) => { if (element.id_ticket.toString() === nbTicket) found = true; }) console.log(found) return found }O
necesitas imprimir dentro de la cadena luego
let found = false; axios .get(link) .then((response) => { response.data.map((element) => { if (element.id_ticket.toString() === nbTicket) found = true; }); console.log(found); });