我想要$.when
與我的代碼一起工作。這種情況是,我有一個方法可以觸發大量的Ajax請求,並且我想在請求符文的時候爲用戶顯示一個加載篩選器。什麼時候是這樣我可以隱藏它之後。鑑於我所瞭解的$.when
應該是下面的代碼工作,但時間函數永遠不會被解僱。
self.createTaggingDialog(self);
var ajaxArray = new Array();
self.containers.each(function() {
var ImageClass = $(this).ImageTags();
if (ImageClass != null) {
ajaxArray.push(ImageClass.TagUser(ImageClass, username));
}
});
$.when(ajaxArray, function() {
console.log("DONE!");
self.RemoveTagggingDialog(self);
});
這裏是ajaxArray
的值,當它達到$。當
的TagUser:
TagUser(self: ImageTags, username: string) {
return $.ajax({
type: "POST",
url: self.options.UrlTagUser,
data: {
username: username,
imageid: self.options.ImageId
},
success: function (data: UserAddJson) {
if (data.Successful) {
if (self.AddUserElement != null) {
self.AddUserElement.find('input').val('');
self.AddUserElement.modal('hide');
}
self.TagUserSuccess(self, data);
} else {
self.TagUserError(self, data.Message);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
self.TagUserError(self, "");
}
});
}
我想'self.containers .each'不是異步的,那麼爲什麼你需要一個通常爲u的'jQuery.when' sed延期?只要把你的代碼從循環下面的回調中循環通過一個集合... –