docs: function delay(timeout, value) {
          if (timeout < 0) {
              return value;
          }
  
          var future = new Future();
          setTimeout(function () {
              future.resolve(value);
          }, timeout);
          return future;
      }