12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import InterceptorManager from '@/utils/Http/InterceptorManager'
- import dispatchRequest from '@/utils/Http/dispatchRequest';
- import _ from '@/assets/scripts/lodash';
- function Http(instanceConfig) {
- this.defaults = instanceConfig;
- this.interceptors = {
- request: new InterceptorManager(),
- response: new InterceptorManager()
- };
- }
- Http.prototype.request = function (config) {
- if (typeof config === 'string') {
- config = arguments[1] || {};
- config.url = arguments[0];
- } else {
- config = config || {};
- }
-
- config = Object.assign(this.defaults, config);
- config.method = config.method ? config.method.toUpperCase() : 'GET';
-
- let promise = Promise.resolve(config);
- const chain = [dispatchRequest, undefined];
-
- this.interceptors.request.forEach(interceptor => {
- chain.unshift(interceptor.resolve, interceptor.reject);
- });
-
- this.interceptors.response.forEach(interceptor => {
- chain.push(interceptor.resolve, interceptor.reject);
- });
-
- while(chain.length) {
- promise = promise.then(chain.shift(), chain.shift());
- }
-
- return promise;
- }
- _.forEach(['get', 'delete'], (method) => {
- Http.prototype[method] = function (url, config) {
- const params = config && config.params;
- if (params) {
- config.data = params;
- }
- return this.request(Object.assign(config || {}, {
- method: method.toUpperCase(),
- url,
- header:{
- 'token':uni.getStorageSync("token")
- },
- dataType: 'json'
- }));
- }
- });
- _.forEach(['post', 'put'], (method) => {
- Http.prototype[method] = function (url, data, config) {
- return this.request(Object.assign(config || {}, {
- method: method.toUpperCase(),
- url,
- data,
- header:{
- 'token':uni.getStorageSync("token")
- },
- dataType: 'json'
- }));
- }
- });
- export default Http;
|