JqueryでのDeferred実装関数配列の同時実行

2026 ワード

//      ,          
var apisPost = [];
//         
apisPost.push(function () {
    var dtd = $.Deferred();
    //   ajax  
    api.apiFn('url', {}, function (d) {
        //ajax    resolve
        dtd.resolve();
    });
    //  promise  
    return dtd.promise();
});
//      
apisPost.push(function () {
    var dtd = $.Deferred();
    api.apiFn('url', {}, function (d) {
        dtd.resolve();
    });
    return dtd.promise();
});
//    
//  apply         ,  map    promise   
$.when.apply(null, apisPost.map(function (v) {
    return v();
})).done(function (data) {
    //       
}).fail(function (error) {
    //        
})