0

我正在尝试$.when使用我的代码。情况是我有一个触发大量 Ajax 请求的方法,我想在请求符文时为用户显示加载屏幕。什么时候是这样我以后可以隐藏它。鉴于我所了解到$.when的以下代码是否可以工作,但是 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到达 $.when 时 的值在此处输入图像描述

标签用户:

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, "");
        }
    });
}
4

1 回答 1

2

尝试

$.when.apply($, ajaxArray).done(function () {
    console.log("DONE!");
    self.RemoveTagggingDialog(self);
});
于 2013-05-20T09:48:36.637 回答