¿Es posible configurar async: false
al llamar $.getJSON()
para que la llamada se bloquee en lugar de ser asincrónica?
105
¿Es posible configurar async: false
al llamar $.getJSON()
para que la llamada se bloquee en lugar de ser asincrónica?
Respuestas:
Necesita hacer la llamada usándola
$.ajax()
sincrónicamente, así:Esto coincidiría con el uso actual de
$.getJSON()
esta manera:fuente
type: 'POST'
opción para convertirlo en una publicación, aunque no quieres usarlo aasync: false
menos que realmente lo necesites, bloqueará la interfaz de usuario.Ambas respuestas son incorrectas. Usted puede. Necesitas llamar
antes de su llamada json ajax. Y puede configurarlo en verdadero después de la devolución de llamadas (si hay otros usos de ajax en la página si los desea asíncronos)
fuente
$.ajax
(y envolturas de taquigrafía subsiguientes$.getJSON
, es decir$.get
, etc.) para que sean sincrónicas. Además, la documentación incluso sugiere no usar esto: "Descripción: Establecer valores predeterminados para futuras solicitudes de Ajax. No se recomienda su uso".Creo que ambos tienen razón. La respuesta posterior funciona bien, pero es como configurar una opción global, por lo que debe hacer lo siguiente:
fuente
En mi caso, Jay D tiene razón. Tengo que agregar esto antes de la llamada.
En mi código anterior, tengo esto:
Funciona encontrar. Entonces cambio a
La alerta no está definida.
Si agrego esas tres líneas, la alerta muestra los datos nuevamente.
fuente
Si solo necesita
await
evitar el código anidado:fuente
No creo que puedas establecer esa opción allí. Tendrá que usar jQuery.ajax () con los parámetros apropiados (básicamente getJSON simplemente envuelve esa llamada en una API más fácil, también).
fuente
Ruede su propio eg
fuente