private/adapters/dev-fixtures.js
function (response, statusCode, statusText) {
    var adapter = this, responseFunction, isOk, shouldCopy, isInvalid;
    statusCode = statusCode || 200;
    statusText = statusText || HTTP_STATUS_MESSAGES[statusCode];
    isOk = Math.round(statusCode / 100) === 2;
    if (typeof response === 'function') {
      shouldCopy = true;
      responseFunction = bind(this, response);
    }
    else {
      isInvalid = response instanceof DS.InvalidError;
      if (isInvalid) {
        response = new DS.InvalidError(response.errors);
      }
      else {
        response = copy(response, true);
      }
      responseFunction = function () {
        return response;
      };
    }
    return new Ember.RSVP.Promise(function (resolve, reject) {
      var value, func, data;
      func = isOk ? resolve : reject;
      data = responseFunction();
      if (shouldCopy) {
        data = copy(data, true);
      }
      value = isOk ? data : (isInvalid ? data : {
        response:     data || {error: statusText},
        responseJSON: data || {error: statusText},
        status:       statusCode,
        statusText:   statusText
      });
      Ember.runInDebug(function () {
        console[isOk ? 'log' : 'error'](
          fmt('[dev-fixtures] Simulating %@ response:', isOk ? 'success' : 'error'),
          copy(response, true)
        );
      });
      if (adapter.get('simulateRemoteResponse')) {
        // Schedule with setTimeout
        later(null, func, value, adapter.get('latency'));
      }
      else {
        // Asynchronous, but at the of the run-loop with zero latency
        schedule('actions', null, func, value);
      }
    }, "DS: DevFixtureAdapter#simulateRemoteCall");
  }
function (response, statusCode, statusText) {
    var adapter = this, responseFunction, isOk, shouldCopy, isInvalid;
    statusCode = statusCode || 200;
    statusText = statusText || HTTP_STATUS_MESSAGES[statusCode];
    isOk = Math.round(statusCode / 100) === 2;
    if (typeof response === 'function') {
      shouldCopy = true;
      responseFunction = bind(this, response);
    }
    else {
      isInvalid = response instanceof DS.InvalidError;
      if (isInvalid) {
        response = new DS.InvalidError(response.errors);
      }
      else {
        response = copy(response, true);
      }
      responseFunction = function () {
        return response;
      };
    }
    return new Ember.RSVP.Promise(function (resolve, reject) {
      var value, func, data;
      func = isOk ? resolve : reject;
      data = responseFunction();
      if (shouldCopy) {
        data = copy(data, true);
      }
      value = isOk ? data : (isInvalid ? data : {
        response:     data || {error: statusText},
        responseJSON: data || {error: statusText},
        status:       statusCode,
        statusText:   statusText
      });
      Ember.runInDebug(function () {
        console[isOk ? 'log' : 'error'](
          fmt('[dev-fixtures] Simulating %@ response:', isOk ? 'success' : 'error'),
          copy(response, true)
        );
      });
      if (adapter.get('simulateRemoteResponse')) {
        // Schedule with setTimeout
        later(null, func, value, adapter.get('latency'));
      }
      else {
        // Asynchronous, but at the of the run-loop with zero latency
        schedule('actions', null, func, value);
      }
    }, "DS: DevFixtureAdapter#simulateRemoteCall");
  }
function ( response , statusCode , statusText ) { var adapter = this , responseFunction , isOk , shouldCopy , isInvalid ; statusCode = statusCode || 200 ; statusText = statusText || HTTP_STATUS_MESSAGES [ statusCode ] ; isOk = Math . round ( statusCode / 100 ) === 2 ; if ( typeof response === 'function' ) { shouldCopy = true ; responseFunction = bind ( this , response ) ; } else { isInvalid = response instanceof DS . InvalidError ; if ( isInvalid ) { response = new DS . InvalidError ( response . errors ) ; } else { response = copy ( response , true ) ; } responseFunction = function ( ) { return response ; } ; } return new Ember . RSVP . Promise ( function ( resolve , reject ) { var value , func , data ; func = isOk ? resolve : reject ; data = responseFunction ( ) ; if ( shouldCopy ) { data = copy ( data , true ) ; } value = isOk ? data : ( isInvalid ? data : { response : data || { error : statusText } , responseJSON : data || { error : statusText } , status : statusCode , statusText : statusText } ) ; Ember . runInDebug ( function ( ) { console [ isOk ? 'log' : 'error' ] ( fmt ( '[dev-fixtures] Simulating %@ response:' , isOk ? 'success' : 'error' ) , copy ( response , true ) ) ; } ) ; if ( adapter . get ( 'simulateRemoteResponse' ) ) { // Schedule with setTimeout later ( null , func , value , adapter . get ( 'latency' ) ) ; } else { // Asynchronous, but at the of the run-loop with zero latency schedule ( 'actions' , null , func , value ) ; } } , "DS: DevFixtureAdapter#simulateRemoteCall" ) ; }
Better method for simulating a remote call

@method simulateRemoteCall
@param {Object|Function} response
@param {number} [statusCode=200]
@param {string} [statusText]
@return {Promise}
Better method for simulating a remote call