Tengo una función cuando cambia el elemento de entrada 1, si la entrada del usuario es válida, debería activar una función asíncrona que obtiene datos y completa la lista de datos para la entrada 2.
Incluso aunque const validInput = isValid(input1); devuelve el resultado correcto, la función asíncrona siempre se ejecuta
input1.addEventListener('change', handleChange) function handleChange () { const validInput = isValid(input1); // correctly returns true/false console.log(validInput) if(!validInput) { hideInput(input2); console.log('1',validInput) } else { console.log('2',validInput) updateInput2datalist(); // gets executed either way displayInput(input2); } }; async function updateInput2datalist () { let arr; await getModelsAPI().then(response => arr = response); populateDatalist(input2Datalist, arr); } desde la consola obtengo true 2 true
false 2 false
Creo que debe revertir la condición if , ya que la función updateInput2datalist se ejecutará en validInput igual al valor true .
if(validInput) { hideInput(input2); } else { updateInput2datalist(); // gets executed either way displayInput(input2); }