var delayedFuncs = [];

function triggerWrapper(func, params) {
  return function () {
    var that = undefined;
    func.apply(that, params);
    triggerNextDelayedFunc();
  }
}
function triggerNextDelayedFunc() {
  if (delayedFuncs.length < 1) {
    return;
  }
  var delayedFunc = delayedFuncs.shift();
  var func = delayedFunc.func;
  var params = delayedFunc.params;
  var delay = 1500;
  setTimeout(triggerWrapper(func, params), delay);
}
function addDelayedFunc(func, params) {
  delayedFuncs.push({
    func: func,
    params: params
  });
}

function logToScreen(msg) {
  document.body.innerHTML += "<p>" + msg + "</p>";
}
function checkusername(username) {
  logToScreen("Checked username: " + username);
}
function checkemail(email) {
  logToScreen("checked email: " + email);
}
function checkpassword(password) {
  logToScreen("checked password: " + password);
}
var username = "paul.wilkins";
var email = "paul.m.wilkins@gmail.com";
var password = "hunter2";
addDelayedFunc(checkusername, [username]);
addDelayedFunc(checkemail, [email]);
addDelayedFunc(checkpassword, [password]);

triggerNextDelayedFunc();
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.