UNPKG

kit-request

Version:

定制处理数据请求,fetch使用 isomorphic-fetch,xhr 使用 axios

117 lines (91 loc) 3.01 kB
'use strict'; 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'];