相当于同步JS中的XMLHttpRequest超时

Equivalent to XMLHttpRequest timeout in synchronous JS

有点难以理解为什么超时在同步 JS 中不起作用。我的脚本是同步的,我需要它能够超时,因为我的异常处理它,这可能吗?

我试图研究它,但所有实现(使用 setTimeout 等)似乎只是立即 运行 以下代码,并且将跳过尝试连接,几乎就像超时设置为 0 毫秒一样。

        function httpGet(theUrl) {
            try {
                var xmlHttp = new XMLHttpRequest();
                xmlHttp.open("GET", theUrl, false);
                xmlHttp.timeout = 3000;
                xmlHttp.send(null);
                NotifyUser("success", "<b>Success</b> We have synced with the server.");
                return xmlHttp.responseText;
            } catch (e) {
                    console.log("Connection failed, grabbing local");
                    NotifyUser("info", "<b>Connection Failed</b> Using local database - Edits will not be saved!(Yet)");
                    return offlinePopulate();
            } 
}

最终使其与 jquery.get

异步
$.get( theUrl, function( data ) {
               //panic
            }).done(function(data) {
               console.log("success");

            }).fail(function() {
                console.log("fail");

            });