js/libs/ember-data.js
function() {
    var promiseLabel = "DS: Model#save " + this;
    var resolver = Ember.RSVP.defer(promiseLabel);

    this.get('store').scheduleSave(this, resolver);
    this._inFlightAttributes = this._attributes;
    this._attributes = {};

    return DS.PromiseObject.create({ promise: resolver.promise });
  }
function() {
    var promiseLabel = "DS: Model#save " + this;
    var resolver = Ember.RSVP.defer(promiseLabel);

    this.get('store').scheduleSave(this, resolver);
    this._inFlightAttributes = this._attributes;
    this._attributes = {};

    return DS.PromiseObject.create({ promise: resolver.promise });
  }
function ( ) { var promiseLabel = "DS: Model#save " + this ; var resolver = Ember . RSVP . defer ( promiseLabel ) ; this . get ( 'store' ) . scheduleSave ( this , resolver ) ; this . _inFlightAttributes = this . _attributes ; this . _attributes = { } ; return DS . PromiseObject . create ( { promise : resolver . promise } ) ; }
Save the record and persist any changes to the record to an
extenal source via the adapter.

Example

```javascript
record.set('name', 'Tomster');
record.save().then(function(){
Success callback
}, function() {
Error callback
});
```
@method save
@return {Promise} a promise that will be resolved when the adapter returns
successfully or rejected if the adapter returns with an error.
Save the record and persist any changes to the record to an extenal source via the adapter .