Javascript jQuery承诺(承诺数量可变)

Javascript jQuery承诺(承诺数量可变),javascript,jquery,asynchronous,promise,Javascript,Jquery,Asynchronous,Promise,我有一个脚本,加载多个SVG文件,然后绘制它们 var s=Snap(#svg”); var bigCircle=s.circle(150150100); //帮助程序将Snap.load()转换为承诺。 函数loadSVG(url){ var DEREFERED=新的$.DEREFERED(); 加载(url,函数(x){ 延期。决议(x); }); 延迟返回。承诺(); } //做出一系列承诺。 var loadPromissions=[ loadSVG('eu.svg'), loadSVG

我有一个脚本,加载多个SVG文件,然后绘制它们

var s=Snap(#svg”);
var bigCircle=s.circle(150150100);
//帮助程序将Snap.load()转换为承诺。
函数loadSVG(url){
var DEREFERED=新的$.DEREFERED();
加载(url,函数(x){
延期。决议(x);
});
延迟返回。承诺();
}
//做出一系列承诺。
var loadPromissions=[
loadSVG('eu.svg'),
loadSVG('af.svg'),
loadSVG('am.svg'),
loadSVG('as.svg'),
];
//等待所有的承诺完成。
$.when(loadPromissions).done(函数(结果){

console.log(results);//您必须使用
apply
将参数数组传递给
$。当

$.when.apply($, loadPromises).done(function () {
    var results = [].slice.call(arguments);

    ....
});
这就等于

$.when(loadPromises[0], loadPromises[1], loadPromises[2], etc)

您必须使用
apply
将参数数组传递给
$

$.when.apply($, loadPromises).done(function () {
    var results = [].slice.call(arguments);

    ....
});
这就等于

$.when(loadPromises[0], loadPromises[1], loadPromises[2], etc)

太好了。非常感谢!我自己不会发现的。有什么和“结果”相似的吗?因为我只在“结果”中得到第一个结果,不是数组确实如此,请给我一点时间,让我试一试。这是作为数组->完美的一般情况下获得结果的方式。非常感谢!我自己不会发现这一点。与“结果”类似吗?因为我只在“结果”中获得第一个结果,而不是数组确实如此,请给我一点时间来尝试一下,这里是您通常以数组的形式获得结果的方式->如果您使用向后浏览器(IE系列),那么
$.when(loadPromissions).done(function(results){
简单地变成
Promise.all(loadPromissions)。然后(function(results){
如果您将a用于向后浏览器(IE系列),则
$.when(loadpromissions).done(函数(结果){
将变成
Promise.all(loadpromissions).然后(函数(结果){