Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能保证onreadystatechange最终总是在readyState==4时被调用吗?_Javascript_Xmlhttprequest - Fatal编程技术网

Javascript 我能保证onreadystatechange最终总是在readyState==4时被调用吗?

Javascript 我能保证onreadystatechange最终总是在readyState==4时被调用吗?,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我在一个嵌入式设备上使用XMLHttpRequest,该设备提供API的非标准扩展,允许在请求完成后手动清理资源 我是否可以假设,对于所有情况(成功或其他情况,例如404、DNS查找失败等),对send()方法的调用最终将导致使用readyState==4调用onreadstatechange处理程序 或者,换一种说法,假设此实现的XHR在所有其他方面的行为与标准浏览器的行为类似,那么下面的代码是否总是会导致调用destroy()方法 var xhr = new XMLHttpRequest()

我在一个嵌入式设备上使用XMLHttpRequest,该设备提供API的非标准扩展,允许在请求完成后手动清理资源

我是否可以假设,对于所有情况(成功或其他情况,例如404、DNS查找失败等),对send()方法的调用最终将导致使用readyState==4调用onreadstatechange处理程序

或者,换一种说法,假设此实现的XHR在所有其他方面的行为与标准浏览器的行为类似,那么下面的代码是否总是会导致调用destroy()方法

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        callback(xhr.responseText);
        if (xhr.destroy) { // must call this to prevent memory leak
            xhr.destroy();
        }
    }       
};
xhr.open(method, url, true);
xhr.send(null);
没有

在某些情况下,例如在调用
abort()
时,状态可能在
未发送时终止(3.6.5)

即使在“正常”操作期间,如果发生错误并引发异常,则状态可能会在
DONE
之外的某个位置终止

阅读了解更多信息