getData(success, fail, progress) { let pomise = Util.promise(function(def) { return this._getData(function(data) { data = this.adapter ? this.adapter.convert(data) : data; def.resolve(data); }.bind(this), function() { def.reject.apply(def, arguments); }, function() { def.notify.apply(def, arguments); }); }.bind(this)); if (is.fn(success)) { pomise.then(success); } if (is.fn(fail)) { pomise.fail(fail); } if (is.fn(progress)) { pomise.progress(progress); } return pomise; }