promisen.js
function executable(value) {
      var result;
      try {
        result = resolve(task.apply(this, arguments));
      } catch (e) {
        result = reject(e);
      }
      return result;
    }
function executable(value) {
      var result;
      try {
        result = resolve(task.apply(this, arguments));
      } catch (e) {
        result = reject(e);
      }
      return result;
    }
function executable ( value ) { var result ; try { result = resolve ( task . apply ( this , arguments ) ) ; } catch ( e ) { result = reject ( e ) ; } return result ; }
return a result from the function
return a result from the function