Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Cuerpo de nivel superior de error de sintaxis de módulos con async/await

Mi await de que asyncCall() termine en la función inputEntriesNotOnScreen no funciona a pesar de estar en una función asíncrona. me sale este error:

SyntaxError no capturado: await solo es válido en funciones asíncronas y los cuerpos de módulos de nivel superior

¿Qué significa la segunda parte del error?

 function resolve1MS() { return new Promise(resolve => { setTimeout(() => { resolve('resolved'); }, 1); }); } async function asyncCall() { let clicked = false; while( !clicked){ await resolve1MS(); if($('.ui-menu-item').length != 0){ $('.ui-menu-item')[0].click(); clicked = true; $matrix = $("table.timesheet tbody tr"); return { lastRow: $matrix.last() } } } } async function inputEntriesNotOnScreen($matrix, notFoundInInitialSearch){ let lastRow = undefined; notFoundInInitialSearch.forEach(function(item, index){ console.log(item, index); if( lastRow == undefined){ lastRow = $matrix.last(); } else{ lastRow = await asyncCall(); } lastRow.find('.search')[0].click(); let $searchBar = $('.ui-autocomplete-input');multiple times $($searchBar[index]).val(item[0][0]); $searchBar[index].dispatchEvent(new Event('input')); }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está creando una función para pasar a su forEach que no es async .

Reemplazar forEach con un bucle for estándar debería permitirle usar await según sea necesario.

Como aviso, si realiza la función en forEach asíncrono, como forEach(async function(item, index) , podrá usar await dentro de la función, pero todas las devoluciones de llamada se ejecutarán en paralelo (después de llegar al await), y no tendrás forma de esperarlos.

https://jsfiddle.net/8nwdus0h/

Para obtener más información, puede leer Uso de async/await con un bucle forEach

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda