No sé lo que está mal con este código. Lanza un error en la consola que dice:
SyntaxError no detectado: await solo es válido en funciones asíncronas y los cuerpos de módulos de nivel superior
¿Alguien puede decirme qué está mal con mi uso de await ?
let user = { name: 'George', surname: 'Arqael' }; let regUser = await fetch(url, { method: 'post', headers: { 'Content-type': 'application/json; charset=utf-8' }, body: JSON.stringify(user) }); let result = await regUser.json(); console.log(result);Await requiere asíncrono. Debería poder envolverlo en una función asíncrona.
async function f() { let regUser = await fetch(url, { method: 'post', headers: { 'Content-type': 'application/json; charset=utf-8' }, body: JSON.stringify(user) }); let result = await regUser.json(); console.log(result); }Como dice el error, la espera de nivel superior solo está disponible en módulos . Si agrega type="module" a su etiqueta de secuencia de comandos, funcionará como se esperaba.
<script type="module"> let user = { name: 'George', surname: 'Arqael' }; let regUser = await fetch(url, { method: 'post', headers: { 'Content-type': 'application/json; charset=utf-8' }, body: JSON.stringify(user) }); let result = await regUser.json(); console.log(result); </script> O envuelva su código en una función async como sugirió MortBort .