使用$.when的时候,有时候需要传入不确定数量的promise,这个时候,就无法使用官方文档里,将确定数量的promise放进$.when里,使用apply方法,就可以解决这个问题。下面有完整的例子
关键点:apply的运用与成功回调参数的获取
function gendef(){
let def=$.Deferred()
setTimeout(function(){
def.resolve()
},100)
return def
}
let arr=[]
for(let i=0;i<5;i++){
arr.push(gendef())
}
$.when.apply(this,arr)
.then(function(...args){
// 获取执行结果数据
console.log(args)
console.log(arguments)
})