code: function when (condition, fn, interval) {
    if (condition()) return callback.async(fn);
  
    var ref = setInterval(function () {
      if (!condition()) return;
      callback(fn);
      clearInterval(ref);
    }, interval || 10);
  }
docs: Loop on a short interval until `condition()` is true, then call `fn`.
  
  @param {Function} condition
  @param {Function} fn
  @param {Number} interval (optional)