|
|
@@ -2,13 +2,21 @@ |
|
|
|
function post(url, cb) { |
|
|
|
var xhr = new XMLHttpRequest(); |
|
|
|
|
|
|
|
let timeout = setTimeout(function() { |
|
|
|
console.log("Timed out, aborting."); |
|
|
|
var cbd = false; |
|
|
|
|
|
|
|
var timeout = setTimeout(function() { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
|
|
|
|
cb("ETIMEDOUT"); |
|
|
|
xhr.abort(); |
|
|
|
}, 3000); |
|
|
|
}, 5000); |
|
|
|
|
|
|
|
xhr.addEventListener("load", function() { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
try { |
|
|
|
var obj = JSON.parse(xhr.responseText); |
|
|
|
} catch (err) { |
|
|
@@ -24,11 +32,17 @@ |
|
|
|
}); |
|
|
|
|
|
|
|
xhr.addEventListener("error", function(err) { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
cb(err); |
|
|
|
}); |
|
|
|
xhr.addEventListener("abort", function(err) { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
cb(err); |
|
|
|
}); |
|
|
|
|
|
|
@@ -78,11 +92,15 @@ |
|
|
|
// Retry on error |
|
|
|
if (err === "ENOTREGISTERED") { |
|
|
|
console.log("Not registered, reregistering"); |
|
|
|
setTimeout(function() { init() }, 2000); |
|
|
|
setTimeout(init, 2000); |
|
|
|
return; |
|
|
|
} else if (err == "ETIMEDOUT") { |
|
|
|
console.log("Timed out."); |
|
|
|
setTimeout(await, 0); |
|
|
|
return; |
|
|
|
} else if (err) { |
|
|
|
console.error(err); |
|
|
|
setTimeout(function() { await() }, 2000); |
|
|
|
setTimeout(await, 2000); |
|
|
|
return; |
|
|
|
} |
|
|
|
|