使用版本1.8.3时出现jquery$.when错误
我在一个数组中保留了数量可变的ajax承诺。 当所有的承诺都兑现时,我会做些别的事情:使用版本1.8.3时出现jquery$.when错误,jquery,ajax,deferred,Jquery,Ajax,Deferred,我在一个数组中保留了数量可变的ajax承诺。 当所有的承诺都兑现时,我会做些别的事情: $.when.apply($, promises).then( function(){ var myArgs = []; if(promises.length == 1){ var myArgs = []; myArgs[0] = arguments; }else{ myArgs = arguments; } for(
$.when.apply($, promises).then( function(){
var myArgs = [];
if(promises.length == 1){
var myArgs = [];
myArgs[0] = arguments;
}else{
myArgs = arguments;
}
for(i=0; i<myArgs.length; i++){
fileArr[promise2File[i]]['prop1'] = myArgs[i][0].type;
fileArr[promise2File[i]]['prop2'] = myArgs[i][0].message;
}
});
您知道为什么我在较新版本的jquery上出现此错误吗?在jquery 1.8中,该版本的被删除并替换为一个接受完成/失败回调,而不是接受完成/失败过滤器的版本 从.then更改为.done应该可以解决您的问题
$.when.apply($, promises).done(function(){
.then
在1.8之后基本上与在1.8之前的.pipe
相同使用.done代替。然后,它的功能在jquery的更高版本中发生了更改。凯文,这都是真的,但它是否解释了错误消息“uncaughttypeerror:Object[Object Object]没有方法‘progress’”?也许我是在装傻,但我看不出来。使用.then()
作为链的最后一个方法,它是否在1.8之前/之后不是学术性的吗?对我来说,parent.myFunc()
更可能返回由jQuery以外的库生成的承诺,Beetroot Beetroot pre-1.8。然后,
没有尝试将回调添加到。progress
,除非您给它一个进度回调,因为。然后pre-1.8的功能完全不同。myFunc很可能从另一个库返回了一个promise对象,但只要它实现了足够的功能,jquery就可以处理它。我想我尝试了所有的组合([then,done]x[v1.6,v1.8]),但我想我没有。在1.8版中使用.done效果很好。
$.when.apply($, promises).done(function(){