Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
Funciones asincrónicas de Javascript que no se ejecutan

Tengo 2 funciones asíncronas en Javascript. Uno llama a un controlador MVC para cargar una tabla de "ubicaciones", el otro elimina una ubicación individual. La idea es hacer clic en un botón para cargar las ubicaciones en una ventana emergente modal, luego cada fila tiene un botón de eliminación que elimina una ubicación individual, luego se llama a la misma función editPlacementHeader después de la función de eliminación para volver a abrir el modal y mostrar el mesa de nuevo.

El problema es que cuando hago clic en el botón para mostrar las ubicaciones, en la consola aparece el siguiente error:

SyntaxError no capturado: await solo es válido en funciones asíncronas, generadores asíncronos y módulos

Por lo que puedo decir, la función es asíncrona.

Si elimino todos los async y awaits del código JS, el modal se carga, se elimina un día pero el modal no se cierra y se vuelve a abrir, a menos que coloque un punto de interrupción en el código C# que carga los datos para "pausar", entonces sería trabajar.

Código JS -

 async function editPlacementHeader(id) { let e = $.Event(); e.preventDefault(); $("#EditPlacementHeaderPopup").modal("hide"); $("#EditPlacementPopup").modal("hide"); await $.ajax({ url: '/WeeklyPlacement/EditPlacementHeader?bookingId=' + id, type: 'POST', dataType: 'html', contentType: "application/json; charset=utf-8", success: function(response) { $("#dvEditPlacementHeaderPartial").html(response); $("#EditPlacementHeaderPopup").modal("show"); } }); }; async function deleteDay(id, bookingId) { let e = $.Event(); e.preventDefault(); $.ajax({ url: '/WeeklyPlacement/DeletePlacementDay?id=' + id, type: 'POST', dataType: 'html', contentType: "application/json; charset=utf-8", success: function(response) { $("#EditPlacementHeaderPopup").modal("hide"); $("#EditPlacementPopup").modal("hide"); toastNotifySuccess("Day deleted successfully", 1000); await editPlacementHeader(bookingId); } }); };

HTML para abrir la ubicación -

@mon.Nombre

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tiene una función anónima en su devolución de llamada exitosa que no es asíncrona, pero usa await dentro de ella. Quite el "esperar" antes de llamar a editPlacementHeader o haga que su devolución de llamada sea asíncrona, y debería funcionar.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!