Red de conocimiento informático - Material del sitio web - Cómo manejar devoluciones de llamadas para múltiples solicitudes simultáneas

Cómo manejar devoluciones de llamadas para múltiples solicitudes simultáneas

Estoy trabajando en una nueva función para Mozilla Developer Network que requiere que se cargue un archivo de script básico junto con la solicitud JSON. Como usamos jQuery, esto significa usar jQuery.getScript y jQuery.getJSON. Sé que ambas solicitudes son asincrónicas y devuelven un objeto diferido, por lo que me pregunto si es posible solicitarlas secuencialmente en una devolución de llamada. Me pregunto si es posible solicitarlos secuencialmente en una devolución de llamada como lo hacen la mayoría de los cargadores de JavaScript como curljs. Afortunadamente, pude usar jQuery para manejar ambas solicitudes en una sola devolución de llamada.

Código JavaScript para JQuery

Como mencioné anteriormente, necesito cargar un script y un archivo JSON como este:

$.when(

$.getScript('/media/js/wiki-min.js?build= 21eb633'),

$.getJSON('https://developer.mozilla.org /en- US/demos/feeds/json/featured/')

).then(function(a, b) {

// o ".done"

//Está bien, la carga está completa, puedes comenzar a trabajar

});

Cuando el archivo de recursos esté cargado, se activará la función Listo o la devolución de llamada, y sabré el Solicitud completada. Cada solicitud devolverá un parámetro de devolución de llamada diferente. Por ejemplo, el parámetro de devolución de llamada anterior es el siguiente:

// [respuesta, estado, jqxhr], [respuesta, estado, jqxhr]

["(función(c){var e=c(".from-search-navegar");if(e...;if(j){g.apply(m,l)}}}})( window,document,jQuery);", "success", Object] [Array[15], "success", Object]

Si queremos cargar otra solicitud Ajax tradicional, como obtener una plantilla HTML , Podemos hacer esto:

$.when(

$.getScript('/media/js/wiki-min.js?build=21eb633'),

$.getJSON ('https://developer.mozilla.org/en-US/demos/feeds/json/featured/'),

$.get('/')

).then(function(a, b, c) {

console. log(a, b, c);

});

Dojo Toolkit tenía una característica similar hace mucho tiempo, pero no esperaba que jQuery moderno pudiera hacerlo. La necesidad de manejar múltiples solicitudes en una sola devolución de llamada surgió más de una vez, lo que demuestra que jQuery es. cambiando con los tiempos.