我如何更改此示例
$.when(
$.getScript( "/mypath/myscript1.js" ),
$.getScript( "/mypath/myscript2.js" ),
$.getScript( "/mypath/myscript3.js" ),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function() {
//place your code here, the scripts are all loaded
});
当我不知道要加载和使用URL数组的确切脚本数量时?
var urls = [
'/url/to/script1.js',
'/url/to/script2.js',
'/url/to/script3.js',
'/url/to/script4.js'
];
由于上面的示例是带参数的函数调用,我不能使用像$.each()
这样的循环,我可以吗?另外,我知道Function.apply
,但不知道如何适应将一组简单参数传递给函数,以及将一组函数调用传递给函数。
答案 0 :(得分:0)
您使用.apply
,然后使用arguments
:
var urls = [
'/url/to/script1.js',
'/url/to/script2.js',
'/url/to/script3.js',
'/url/to/script4.js'
];
var requests = urls.map(function(url){ return $.getScript(url); });
$.when.apply($, requests).then(function(){
console.log(arguments); // logs all results, arguments is the results here
return [].slice.call(arguments);
}).then(function(arr){
// access as an array
});