kit-request
Version:
定制处理数据请求,fetch使用 isomorphic-fetch,xhr 使用 axios
117 lines (91 loc) • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = request;
var _fetch = require('./fetch');
var _fetch2 = _interopRequireDefault(_fetch);
var _qs = require('qs');
var _lodash = require('lodash.merge');
var _lodash2 = _interopRequireDefault(_lodash);
var _mini = require('./mini');
var _mini2 = _interopRequireDefault(_mini);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function noop() {
console.error('异常流程,不应该进入这里');
}
var defaultOptions = {
method: 'GET',
url: '',
headers: {},
dataType: 'json',
mode: 'cors',
timeout: 30000,
credentials: 'include',
cache: 'default' };
function checkStatus() {
var res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.log('check');
var status = res.status;
if (status >= 200 && status < 300) {
return res;
}
}
function request(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var success = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop;
var fail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;
var newOptions = (0, _lodash2.default)({}, defaultOptions, options);
var method = (newOptions.method || 'GET').toUpperCase();
newOptions.method = method;
if (method === 'POST') {
Object.defineProperty(newOptions, 'body', {
value: '' + (0, _qs.stringify)(newOptions.data)
});
}
var resolve = function resolve(data) {
_mini2.default.hideLoading();
if (typeof success === 'function') {
success(data);
}
};
var reject = function reject() {
var err = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_mini2.default.hideLoading();
if (typeof fail === 'function' && fail(err)) {
return;
}
var _err$errmsg = err.errmsg,
errmsg = _err$errmsg === undefined ? '网络异常,请稍后重试' : _err$errmsg,
_err$errno = err.errno,
errno = _err$errno === undefined ? 'err' : _err$errno;
if (errno === 510010) {} else {
var message = errno + ': ' + errmsg;
_mini2.default.showToast(message);
console.log('errmsg:', message);
}
};
function log(res) {
console.log('\u8BF7\u6C42 ' + url + ' ' + res.status);
return res;
}
(0, _fetch2.default)(url, newOptions).then(log).then(checkStatus).then(function (response) {
return response.json();
}).then(function () {
var res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.log(res);
if (res.errno === 0) {
resolve(res);
} else {
reject(res);
}
}, function () {
var err = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
console.log('fail:', err);
reject({
errno: err.error,
errmsg: err.errorMessage
});
});
}
module.exports = exports['default'];