理解为什么超时在同步JS中不起作用时会遇到一些麻烦。我的脚本是同步的,我需要它能够超时,因为我的异常处理它,是否可能?
我试图研究它,但所有实现(使用setTimeout等)似乎只是立即运行以下代码并将跳过尝试连接,几乎就像超时被设置为0ms一样。
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();
}
}
答案 0 :(得分:0)
结束使其与jquery.get
异步$.get( theUrl, function( data ) {
//panic
}).done(function(data) {
console.log("success");
}).fail(function() {
console.log("fail");
});