I want to send [1, n) AJAX-requests to the server and after all have returned a result a modal dialog should be closed. $.when(a(), b(), c()) would be perfect, but I don't know how to pass the variable count of functions to $.when as parameter. Any ideas how to solve this problem?
            Asked
            
        
        
            Active
            
        
            Viewed 5,448 times
        
    20
            
            
         
    
    
        Felix Kling
        
- 795,719
- 175
- 1,089
- 1,143
 
    
    
        Botic
        
- 203
- 2
- 5
- 
                    related: [How do you work with an array of jQuery Deferreds?](http://stackoverflow.com/q/4878887/1048572) – Bergi Jul 10 '14 at 23:27
1 Answers
28
            Call the functions and add their return values to an array. Then call $.when passing the array as argument like so:
$.when.apply($, array)
See Function.prototype.apply [MDN] for more information and my answer here for an extended example.
 
    
    
        Community
        
- 1
- 1
 
    
    
        Felix Kling
        
- 795,719
- 175
- 1,089
- 1,143
- 
                    1Sometimes it's just time to knock one's head against the table... JS is too beautiful to get all of it's beauty – .apply() is one of it! Thanks a lot for the "Denkanstoß" ;-) – Botic Nov 04 '11 at 15:35