|
|
@@ -1,53 +1,25 @@ |
|
|
|
(function() { |
|
|
|
function post(url, cb) { |
|
|
|
var xhr = new XMLHttpRequest(); |
|
|
|
|
|
|
|
var cbd = false; |
|
|
|
|
|
|
|
var timeout = setTimeout(function() { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
|
|
|
|
cb("ETIMEDOUT"); |
|
|
|
xhr.abort(); |
|
|
|
}, 5000); |
|
|
|
|
|
|
|
xhr.addEventListener("load", function() { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
try { |
|
|
|
var obj = JSON.parse(xhr.responseText); |
|
|
|
} catch (err) { |
|
|
|
console.log(xhr.responseText); |
|
|
|
cb(err); |
|
|
|
} |
|
|
|
|
|
|
|
if (obj.error) { |
|
|
|
cb(obj.error); |
|
|
|
} else { |
|
|
|
cb(null, obj); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
xhr.addEventListener("error", function(err) { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
cb(err); |
|
|
|
}); |
|
|
|
xhr.addEventListener("abort", function(err) { |
|
|
|
let cbd = false; |
|
|
|
function c(err, res) { |
|
|
|
if (cbd) return; |
|
|
|
cbd = true; |
|
|
|
clearTimeout(timeout); |
|
|
|
|
|
|
|
cb(err); |
|
|
|
}); |
|
|
|
cb(err, res); |
|
|
|
} |
|
|
|
|
|
|
|
xhr.open("POST", url); |
|
|
|
xhr.send(); |
|
|
|
setTimeout(() => c("ETIMEDOUT"), 5000); |
|
|
|
|
|
|
|
fetch(url, { method: "POST" }) |
|
|
|
.then(response => response.json()) |
|
|
|
.then(obj => { |
|
|
|
if (obj.error) |
|
|
|
c(obj.error); |
|
|
|
else |
|
|
|
c(null, obj); |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
c(err); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
window.WebEvents = function() { |
|
|
@@ -85,10 +57,6 @@ |
|
|
|
|
|
|
|
function await() { |
|
|
|
post("/webevents/await/"+key, function(err, res) { |
|
|
|
if (err) { |
|
|
|
console.log("Await done, with errors"); |
|
|
|
} |
|
|
|
|
|
|
|
// Retry on error |
|
|
|
if (err === "ENOTREGISTERED") { |
|
|
|
console.log("Not registered, reregistering"); |
|
|
@@ -99,8 +67,9 @@ |
|
|
|
setTimeout(await, 0); |
|
|
|
return; |
|
|
|
} else if (err) { |
|
|
|
console.error(err); |
|
|
|
setTimeout(await, 2000); |
|
|
|
console.error("Error:", err.toString()); |
|
|
|
emit("$error", err); |
|
|
|
setTimeout(init, 2000); |
|
|
|
return; |
|
|
|
} |
|
|
|
|