Tiene sentido que no pueda usar await dentro de una función síncrona. Considere el siguiente fragmento
fetch('.../userdata.json') .then(async res => { const data = await res.json(); setData(state => state.data = data) // setData requires a sync callback in order to work }); Tengo que definir data para no usar await en la devolución de llamada, lo que se siente un poco redundante. ¿Hay alguna abreviatura que me permita esperar en la devolución de llamada?
Use async/await o use devoluciones de llamada. No sé qué "taquigrafía" está buscando, pero puede usar await en general si la función adjunta es async . Por ejemplo:
const someFunc = async () => { const res = await fetch('.../userdata.json'); const data = await res.json(); setData(state => state.data = data); }; someFunc(); Alternativamente, si no está en una función async , no puede usar await . Entonces, esta operación implicaría devoluciones de llamada pasadas a .then() en Promises:
fetch('.../userdata.json') .then(res => res.json()) .then(data => { setData(state => state.data = data); });