tsp-component
Version:
提供多端和react版本的UI组件
81 lines (80 loc) • 3.21 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import WebApi from '../ajax/webapi';
import Exception from '../exception';
var Request = (function (_super) {
__extends(Request, _super);
function Request(config) {
var _this = _super.call(this, config.apiHost, { dbName: config.dbName, tableName: config.tableName || 'api' }) || this;
_this.config = config;
_this.timeoutStr = config.timeoutStr || '网络请求超时';
_this.send = _this.send.bind(_this);
return _this;
}
Request.prototype.ajaxUrlFormat = function (params) {
var apiUrl;
if (params.api.indexOf('://') >= 0) {
apiUrl = params.api;
}
else {
apiUrl = this.config.apiHost + params.api;
}
return apiUrl;
};
Request.prototype.timeoutCallback = function (e, params, defaultCallbackEnable) {
if (defaultCallbackEnable === void 0) { defaultCallbackEnable = true; }
var timeoutStr = params.timeoutStr ? params.timeoutStr : this.timeoutStr;
if (timeoutStr !== 'none' && defaultCallbackEnable && this.config.timeoutCallback) {
this.config.timeoutCallback(timeoutStr);
}
if (params.timeoutCallback) {
params.timeoutCallback();
Exception.send({
errorType: 3,
details: JSON.stringify(params.params),
url: this.ajaxUrlFormat(params),
content: "type: " + (params.type || 'POST')
});
}
};
Request.prototype.successCallback = function (result, status, params) {
try {
if (params.success) {
params.success(result, status);
}
}
catch (e) {
Exception.catchSend(e);
}
};
Request.prototype.send = function (params) {
var _this = this;
this.post({
api: params.api,
type: params.type,
timeout: params.timeout ? params.timeout : 0,
params: params.params ? params.params : {},
contentType: params.contentType,
customHeader: params.customHeader || this.config.customHeader,
timeoutCallback: function (e) {
if (_this.timeoutCallback) {
_this.timeoutCallback(e, params);
}
},
success: function (result, status) { return _this.successCallback(result, status, params); },
complete: params.complete,
isCache: params.isCache,
cacheReadSuccess: params.cacheReadSuccess
});
};
return Request;
}(WebApi));
export default Request;