weixin_33726318 2019-03-12 18:08 采纳率: 0%
浏览 15

恢复中止的AJAX请求

During the abort, I am pushing the aborted object inside a array . When I call request again , I want to first call the aborted requests.

Current code:

    $.xhrPool = []
    var invokeService = function (method, url, params, data, headers = {}, 
    dataType = "json", contentType = "application/json") {
    return new Promise(function (resolve, reject, onCancel) {
        var xUrl = url + (!params ? '' :
            typeof (params) === "object" ? "?" + $.param(params) : "/" + params)
        var xhr = $.ajax({
            method: method,
            headers: { ...headers, "X-URL-Redirect": xUrl },
            dataType: dataType,
            contentType: contentType,
            url: "/api",
            data: typeof (data) === "string" ? data : JSON.stringify(data)
        })

        if ($.xhrPool.length !== 0 ) {
            for (var i = 0; i < $.xhrPool.length; i++) {
                if ($.xhrPool[i].readyState === 0) {
                    $.xhrPool[i] = xhr;
                    xhr.then(function success(data, status, req) {
                        console.log("call from insdie")
                        resolve(data)
                    }, function error(err, status) {
                        console.log(status, err.responseText)
                        reject(err.responseText || "Cannot conect to server");
                    })
                }
            }
        }
         xhr.then(function success(data, status, req) {
             resolve(data)
         }, function error(err, status) {
             console.log(status, err.responseText)
             reject(err.responseText || "Cannot conect to server");
         })

        onCancel(function () {
            if (xhr && xhr.abort) {
                xhr.abort();
                $.xhrPool.add(xhr);      
            }
            else console.log("could not abort request")
        });
    })
}

So when I call the invoke service again I want the $.xhrPool requests to run , and also update the $.xhrPool with only the aborted requests.

  • 写回答

0条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 GEO下载数据的处理报错 :函数‘Meta’标签‘"data.frame"’找不到继承方法,如何解决?
      • ¥15 DLNM模型是否可以用二分类变量作为y变量
      • ¥15 android object box 一个实体多个表怎么写
      • ¥15 temux 启用docker 服务失败
      • ¥15 Flask 使用celery发送邮件出现‘目标计算机积极拒绝‘
      • ¥60 老人用的sd卡在手机里面不知道操作了什么,导致图片和视频变成了文件,取下sd卡连接电脑就是图中的样子,后缀改为.jpg才可以,需要用系统的画图软件才能打开,文件属性还是文件,有没有批量操作的解决办法
      • ¥15 超时跳出方法代码的返回值问题
      • ¥15 汇编语言程序设计设计,ascii码求数,再求数的BCD码
      • ¥30 Mask rcnn训练自己的数据集出现问题!
      • ¥20 研究人工智能时的几个问题