How do you work with an array of jQuery Deferreds?

前端 未结 4 1093
余生分开走
余生分开走 2020-11-22 15:02

I have an application that requires data be loaded in a certain order: the root URL, then the schemas, then finally initialize the application with the schemas and urls for

4条回答
  •  死守一世寂寞
    2020-11-22 15:35

    You're looking for

    $.when.apply($, promises).then(function(schemas) {
         console.log("DONE", this, schemas);
    }, function(e) {
         console.log("My ajax failed");
    });
    

    This will also work (for some value of work, it won't fix broken ajax):

    $.when.apply($, promises).done(function() { ... }).fail(function() { ... });` 
    

    You'll want to pass $ instead of null so that this inside $.when refers to jQuery. It shouldn't matter to the source but it's better then passing null.

    Mocked out all your $.ajax by replacing them with $.when and the sample works

    So it's either a problem in your ajax request or the array your passing to fetch_schemas.

提交回复
热议问题