js/libs/ember-data.js
function() {
    set(this, 'isReloading', true);

    var  record = this;

    var promiseLabel = "DS: Model#reload of " + this;
    var promise = new Ember.RSVP.Promise(function(resolve){
       record.send('reloadRecord', resolve);
    }, promiseLabel).then(function() {
      record.set('isReloading', false);
      record.set('isError', false);
      return record;
    }, function(reason) {
      record.set('isError', true);
      throw reason;
    }, "DS: Model#reload complete, update flags");

    return DS.PromiseObject.create({ promise: promise });
  }
function() {
    set(this, 'isReloading', true);

    var  record = this;

    var promiseLabel = "DS: Model#reload of " + this;
    var promise = new Ember.RSVP.Promise(function(resolve){
       record.send('reloadRecord', resolve);
    }, promiseLabel).then(function() {
      record.set('isReloading', false);
      record.set('isError', false);
      return record;
    }, function(reason) {
      record.set('isError', true);
      throw reason;
    }, "DS: Model#reload complete, update flags");

    return DS.PromiseObject.create({ promise: promise });
  }
Reload the record from the adapter.

This will only work if the record has already finished loading
and has not yet been modified (`isLoaded` but not `isDirty`,
or `isSaving`).

Example

```javascript
App.ModelViewRoute = Ember.Route.extend({
actions: {
reload: function() {
this.get('model').reload();
}
}
});
```

@method reload
@return {Promise} a promise that will be resolved with the record when the
adapter returns successfully or rejected if the adapter returns
with an error.