Tengo la matriz de estado "días" y tengo una función que obtiene el elemento con una identificación dada por el argumento, estoy usando el método array.filter para hacer esto. Suponiendo que la matriz tiene muchos datos, ¿debo hacer que la función sea asíncrona para esperar a que el método de filtro imprima esos datos?
const [days, setDays] = useState([]); const onDayClicked = async (id) => { const daySelected = await days.filter(el => el._id === id) console.log(daySelected) }Una nueva matriz con los elementos que pasan la prueba. Si ningún elemento pasa la prueba, se devolverá una matriz vacía.
Una matriz no es una promesa.
await solo es útil si tiene una promesa en el RHS.
Si tiene que realizar una operación de bloqueo costosa, entonces es simplemente una operación costosa la que bloqueará el bucle de eventos. No puede evitarlo arrojándole una sintaxis de promesa.
Puede evitarlo moviendo el trabajo fuera del bucle de eventos principal y dentro de un trabajador web .
Si lo hizo, podría crear una promesa que se resuelva cuando el trabajador web envía los resultados al bucle de eventos principal.
Y si hizo eso , entonces podría usar await para que daySelected tenga el valor resuelto.