UNPKG

@discuzq/sdk

Version:

discuz dsk

74 lines (55 loc) 2.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); require("core-js/modules/es.object.to-string.js"); require("core-js/modules/es.promise.js"); Object.defineProperty(exports, "__esModule", { value: true }); exports.taroAdapter = void 0; var _settle = _interopRequireDefault(require("axios/lib/core/settle")); var _createError = _interopRequireDefault(require("axios/lib/core/createError")); var _taro = _interopRequireDefault(require("@tarojs/taro")); var _type = require("../../utils/type"); var _common = require("./common"); /** * 处理 taro 框架的请求 */ var taroAdapter = function taroAdapter(config) { return new Promise(function (resolve, reject) { var requestConfig = (0, _common.transfromRequest)(config); // http://taro-docs.jd.com/taro/docs/apis/network/request/request // http://taro-docs.jd.com/taro/docs/apis/network/request/RequestTask var request = _taro.default.request(requestConfig); var requestTask = request.then(function (response) { return (0, _common.transformResponse)(response, config, request); }); var requestTaskAbort = requestTask.abort; // 设置超时 var timer = null; if (config.timeout) { timer = setTimeout(function () { requestTaskAbort && requestTaskAbort(); var timeoutErrorMessage = config.timeoutErrorMessage; if (!config.timeoutErrorMessage) timeoutErrorMessage = "timeout of ".concat(config.timeout, "ms exceeded"); // 和 axios 报错对齐 reject((0, _createError.default)(timeoutErrorMessage, config, 'ECONNABORTED', requestTask)); }, config.timeout); } requestTask.then(function (response) { timer && clearTimeout(timer); (0, _settle.default)(resolve, reject, response); }).catch(function (response) { timer && clearTimeout(timer); if ((0, _type.isObject)(response) && (!(0, _type.isNull)(response.status) || !(0, _type.isNull)(response.statusCode))) { (0, _settle.default)(resolve, reject, (0, _common.transformResponse)(response, config, request)); } else { reject((0, _createError.default)('Network Error', config, null, requestTask)); } }); if (config.cancelToken) { config.cancelToken.promise.then(function (cancel) { timer && clearTimeout(timer); requestTaskAbort && requestTaskAbort(); reject(cancel); }); } }); }; exports.taroAdapter = taroAdapter;