0

完成后如何从数组中删除 jQuery Deferred?我有:

myarray[key]=$.ajax({

}).done(function(response){

 // work with response,
 // then delete myarray[key];

});

这不起作用:

var myvar=function(){
  if(myvar){
    alert(1);
  }
} 

似乎声明必须完成检查变量是否设置的事件,因此在变量声明中删除变量不应该工作如何超时?

4

1 回答 1

1

这取决于 myarray 是数组还是对象。如果它是一个对象,你可以这样做

delete myarray[key];

但如果它是一个数组,那么它会稍微复杂一些。John Resig在这里写了关于删除数组元素的帖子

如果您想更简单地执行此操作,并且它是一个数组,则可以将其删除

myarray[key] = undefined;

但是你应该注意,myarray当你这样做时,它并没有变小。

$.ajax返回一个 Deferred 对象,并.done()返回一个不同的 Deferred 对象。理想情况下,您将执行以下操作:

myarray[key]=$.ajax({

});
myarray[key].done(function(response){
 // work with response,
 // then delete myarray[key];
});
于 2012-10-05T19:03:57.623 回答