code: function(_success, _error) {
  
        if(!this.$promise) {
          this.$promise = $q.when(wrapPromise(this, _success)(this));
        } else {
          this.$promise = this.$promise.then(
            _success ? wrapPromise(this, _success) : _success,
            _error ? wrapPromise(this, _error) : _error
          );
        }
  
        return this;
      }
docs: @memberof CommonApi#
  
  @description Promise chaining method, keeps the model instance as the chain context.
  
  Calls `$q.then` on the model's last promise.
  
  Usage:
  
  ```javascript
  col.$fetch().$then(function() { });
  ```
  
  @param {function} _success success callback
  @param {function} _error error callback
  @return {CommonApi} self