Skip to content

Instantly share code, notes, and snippets.

@bzdgn
Last active February 15, 2016 08:16
Show Gist options
  • Save bzdgn/64fafd4fe3778168b9a7 to your computer and use it in GitHub Desktop.
Save bzdgn/64fafd4fe3778168b9a7 to your computer and use it in GitHub Desktop.
JavaScript Callback HTML Demo
<html>
<body>
<h1>OUTPUT;</h1>
<p id="demo"></p>
<script>
"use strict";
var maxTime = 1000;
var outbox = document.getElementById("demo");
var evenDoubler = function(input, callback) {
var waitTime = Math.floor(Math.random()*(maxTime+1));
if(input%2) {
setTimeout(function () {
callback(new Error("Odd Input"));
}, waitTime);
} else {
setTimeout(function () {
callback(null, input*2, waitTime);
}, waitTime);
}
};
var handleResults = function(error, results, time) {
var output;
if(error) {
output = "ERROR: " + error.message;
} else {
output = "The results: " + results + " (" + time + " ms)";
}
outbox.innerHTML += output + '<br>';
console.log(output);
};
var i;
for(i = 1; i <= 20; i++) {
evenDoubler(i, handleResults);
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment