* fix(requestHandler): 修复请求或网络异常时处理后的response为undefined导致promise.then继续执行的问题 当请求未触发成功条件或statusCode不为200时,responseHandler返回的response为undefined,导致resolve返回并执行promise.then中的代码. 目前通过判断response是否为undefined决定是否resolve(response)来避免break change * fix(request&&uploadFile): 修改responseHandler抛出异常的逻辑并增加捕获异常的处理luoji
5 lines
14 KiB
JavaScript
5 lines
14 KiB
JavaScript
/*!
|
|
* weRequest 1.2.9
|
|
* https://github.com/IvinWu/weRequest
|
|
*/
|
|
module.exports=function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={sessionName:"session",loginTrigger:function(){return!1},codeToSession:{url:"",success:function(){}},successTrigger:function(){return!0},urlPerfix:"",doNotCheckSession:!1,errorTitle:"操作失败",errorContent:function(e){return e},reLoginLimit:3,errorCallback:null,reportCGI:!1,mockJson:!1,globalData:!1,sessionExpireKey:"sessionExpireKey"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={session:"",sessionExpire:1/0}},function(e,t,n){"use strict";var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var r=n(7),u=n(0),i=n(1),a=n(11),s=n(8),f=n(3),l=n(12),c=n(5),d=n(13),p=n(4),g=n(14);function y(e){if(e.startsWith("http"))return e;var t=u.default.urlPerfix;return"function"==typeof u.default.urlPerfix&&(t=u.default.urlPerfix()),t+e}function m(e){return"function"==typeof e.beforeSend&&e.beforeSend(),void 0===e.reLoginCount?e.reLoginCount=0:e.reLoginCount++,e.showLoading&&r.default.show(e.showLoading),e.originUrl||(e.originUrl=e.url,e.url=y(e.url)),e}function v(){var e={};return"function"==typeof u.default.globalData?e=u.default.globalData():"object"==typeof u.default.globalData&&(e=u.default.globalData),e}function h(e){return e=function(e){var t,n;e.data||(e.data={}),e.originUrl!==u.default.codeToSession.url&&i.default.session&&(e.data=o({},e.data,((t={})[u.default.sessionName]=i.default.session,t)));var r=v();return e.data=o({},r,e.data),e.method=e.method||"GET",e.dataType=e.dataType||"json",u.default.doNotUseQueryString||"GET"===e.method||(i.default.session&&(e.url=d.default.setParams(e.url,((n={})[u.default.sessionName]=i.default.session,n))),e.url=d.default.setParams(e.url,r)),c.default.start(e),e}(e),new Promise(function(t,n){wx.request({url:e.url,data:e.data,method:e.method,header:e.header||{},dataType:e.dataType||"json",success:function(e){return t(e)},fail:function(t){return p.default.systemError(e,t),n(t)},complete:function(){"function"==typeof e.complete&&e.complete(),e.showLoading&&r.default.hide()}})})}function x(e){return e=function(e){var t,n;e.formData||(e.formData={}),e.originUrl!==u.default.codeToSession.url&&i.default.session&&(e.formData=o({},e.formData,((t={})[u.default.sessionName]=i.default.session,t)));var r=v();return e.formData=o({},r,e.formData),u.default.doNotUseQueryString||(i.default.session&&(e.url=d.default.setParams(e.url,((n={})[u.default.sessionName]=i.default.session,n))),e.url=d.default.setParams(e.url,r)),c.default.start(e),e}(e),new Promise(function(t,n){wx.uploadFile({url:e.url,filePath:e.filePath||"",name:e.name||"",formData:e.formData,success:function(e){return t(e)},fail:function(t){return p.default.systemError(e,t),n(t)},complete:function(){"function"==typeof e.complete&&e.complete(),e.showLoading&&r.default.hide()}})})}t.default={format:y,request:function(e){return new Promise(function(t,n){if(e=m(e),u.default.mockJson){var o=a.default.get(e);if(o){var r=l.default(o,e,"request");return t(r)}}e.cache&&s.default.get(e),f.default.main().then(function(){return h(e)}).then(function(n){var o=l.default(n,e,"request");if(null!=o)return t(o)}).catch(function(t){g.catchHandler(t,e,n)})})},uploadFile:function(e){return new Promise(function(t,n){if(e=m(e),u.default.mockJson){var o=a.default.get(e);if(o){var r=l.default(o,e,"uploadFile");return t(r)}}f.default.main().then(function(){return x(e)}).then(function(n){var o=l.default(n,e,"uploadFile");if(null!=o)return t(o)}).catch(function(t){g.catchHandler(t,e,n)})})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),r=n(0),u=n(4),i=n(5),a=n(2),s=null;function f(){return new Promise(function(e,t){return!o.default.session||r.default.sessionExpireTime&&(new Date).getTime()>o.default.sessionExpire&&(d(),1)?(r.default.doNotCheckSession=!0,c().then(function(){return e()},function(e){return t(e)})):e()})}var l=null;function c(){return l||(l=new Promise(function(e,t){new Promise(function(e,t){console.log("wx.login");var n=(new Date).getTime();wx.login({success:function(n){if(!n.code)return t({title:"登录失败",content:"请稍后重试[code 获取失败]"});var s,f;(s=n.code,(f="function"==typeof r.default.codeToSession.data?r.default.codeToSession.data():r.default.codeToSession.data||{})[r.default.codeToSession.codeName]=s,new Promise(function(e,t){var n=(new Date).getTime();wx.request({url:a.default.format(r.default.codeToSession.url),data:f,method:r.default.codeToSession.method||"GET",success:function(a){if(200===a.statusCode){if(r.default.codeToSession.report){var s=(new Date).getTime();i.default.report(r.default.codeToSession.report,n,s)}var f="";try{f=r.default.codeToSession.success(a.data)}catch(e){}return f?(o.default.session=f,r.default.doNotCheckSession=!0,r.default.sessionExpireTime&&r.default.sessionExpireKey&&(o.default.sessionExpire=(new Date).getTime()+r.default.sessionExpireTime,wx.setStorage({key:r.default.sessionExpireKey,data:String(o.default.sessionExpire)})),wx.setStorage({key:r.default.sessionName,data:o.default.session}),e()):t(u.default.getErrorMsg(a))}return t({title:"登录失败",content:"请稍后重试"})},complete:function(){},fail:function(){return t({title:"登录失败",content:"请稍后重试"})}})})).then(function(){return e()}).catch(function(e){return t(e)})},complete:function(){var e=(new Date).getTime();i.default.report("wx_login",n,e)},fail:function(e){return t({title:"登录失败",content:e.errMsg})}})}).then(function(){return l=null,e()}).catch(function(e){return l=null,t(e)})})),l}function d(){o.default.session="",wx.removeStorage({key:r.default.sessionName}),r.default.sessionExpireTime&&r.default.sessionExpireKey&&(o.default.sessionExpire=1/0,wx.removeStorage({key:r.default.sessionExpireKey}))}t.default={main:function(){return new Promise(function(e,t){return f().then(function(){return r.default.doNotCheckSession?Promise.resolve():(s||(s=new Promise(function(e,t){console.log("wx.checkSession()");var n=(new Date).getTime();wx.checkSession({success:function(){return e()},fail:function(){return d(),c().then(function(){return e()},function(e){return t(e)})},complete:function(){var e=(new Date).getTime();i.default.report("wx_checkSession",n,e)}})})),s)},function(e){var n=e.title,o=e.content;return u.default.doError(n,o),t({title:n,content:o})}).then(function(){return e()},function(e){var n=e.title,o=e.content;return u.default.doError(n,o),t({title:n,content:o})})})},setSession:function(e){o.default.session=e,r.default.doNotCheckSession=!0,r.default.sessionExpireTime&&r.default.sessionExpireKey&&(o.default.sessionExpire=(new Date).getTime()+r.default.sessionExpireTime,wx.setStorage({key:r.default.sessionExpireKey,data:String(o.default.sessionExpire)})),wx.setStorage({key:r.default.sessionName,data:o.default.session})},delSession:d}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0);function r(e){var t="";if("function"==typeof o.default.errorTitle)try{t=o.default.errorTitle(e.data)}catch(e){}else"string"==typeof o.default.errorTitle&&(t=o.default.errorTitle);var n="";if("function"==typeof o.default.errorContent)try{n=o.default.errorContent(e.data)}catch(e){}else"string"==typeof o.default.errorContent&&(n=o.default.errorContent);return{title:t,content:n}}function u(e,t){wx.showModal({title:e,content:t||"网络或服务异常,请稍后重试",showCancel:!1})}t.default={systemError:function(e,t){"function"==typeof e.fail?e.fail(t):u("",t.errMsg)},logicError:function(e,t){if("function"==typeof e.fail)e.fail(t);else{var n=r(t);u(n.title,n.content)}"function"==typeof o.default.errorCallback&&o.default.errorCallback(e,t),console.error(t)},doError:u,getErrorMsg:r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(6);function u(e,t,n){"function"==typeof o.default.reportCGI&&o.default.reportCGI(e,t,n,r.default)}t.default={start:function(e){e._reportStartTime=(new Date).getTime()},end:function(e){e._reportEndTime=(new Date).getTime(),e.report&&e._reportStartTime&&u(e.report,e._reportStartTime,e._reportEndTime)},report:u}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2);t.default=function(e){return o.default.request(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={show:function(e){wx.showToast({title:"boolean"==typeof e?"加载中":e,icon:"loading",mask:!0,duration:6e4})},hide:function(){wx.hideToast({})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={get:function(e){e.originUrl&&wx.getStorage({key:e.originUrl,success:function(t){(!0===e.cache||"function"==typeof e.cache&&e.cache(t.data))&&"function"==typeof e.success&&e.success(t.data,{isCache:!0}),"function"==typeof e.complete&&e.complete()}})},set:function(e,t){e.originUrl&&(!0===e.cache||"function"==typeof e.cache&&e.cache(t))&&wx.setStorage({key:e.originUrl,data:t})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),r=n(6),u=n(15),i=n(16),a=n(17),s=n(18),f=n(19),l=n(20),c={init:o.default,request:r.default,uploadFile:u.default,setSession:i.default,login:a.default,getSession:s.default,getConfig:f.default,version:l.version};t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(1);t.default=function(e){Object.assign(o.default,e);try{r.default.session=wx.getStorageSync(o.default.sessionName)||""}catch(e){console.error("wx.getStorageSync:fail, can not get session.")}try{r.default.sessionExpire=wx.getStorageSync(o.default.sessionExpireKey||"sessionExpireKey")||1/0}catch(e){console.error("wx.getStorageSync:fail, can not get sessionExpire.")}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(7);t.default={get:function(e){if(!(o.default.mockJson[e.url]||e.originUrl&&o.default.mockJson[e.originUrl]))return console.error("mock 没有对应接口的数据"),!1;var t=o.default.mockJson[e.url]||(e.originUrl?o.default.mockJson[e.originUrl]:""),n={data:t=JSON.parse(JSON.stringify(t)),statusCode:200};return r.default.hide(),n}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(2),u=(n(4),n(8)),i=n(5),a=n(3);t.default=function(e,t,n){if(200!==e.statusCode)throw{type:"http-error",res:e};if("string"==typeof e.data)try{e.data=JSON.parse(e.data)}catch(e){throw{type:"upload-error",res:e}}if(i.default.end(t),o.default.loginTrigger(e.data)&&void 0!==t.reLoginCount&&t.reLoginCount<o.default.reLoginLimit){if(a.default.delSession(),"request"===n)return r.default.request(t);if("uploadFile"===n)return r.default.uploadFile(t)}else{if(!o.default.successTrigger(e.data))throw{type:"logic-error",res:e};var s="";try{s="function"==typeof o.default.successData?o.default.successData(e.data):e.data}catch(e){console.error("Function successData occur error: "+e)}if(!t.noCacheFlash){if("function"!=typeof t.success)return s;t.success(s)}u.default.set(t,s)}}},function(e,t,n){"use strict";var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.default={setParams:function(e,t){void 0===e&&(e="");var n=e.indexOf("?"),r={};if(n>=0){var u=e.substr(n+1).split("&");u.forEach(function(e,t){var n=u[t].split("=");r[n[0]]=n[1]})}r=o({},r,t);var i=Object.keys(r).map(function(e){return e+"="+encodeURI(r[e])}).join("&");return n>=0?e.substring(0,n+1)+i:e+"?"+i}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(4);t.catchHandler=function(e,t,n){var r=e.type,u=e.res;if(t.catchError){if("http-error"===r)n(new Error(u.statusCode.toString()));else if("upload-error"===r)n(new Error(u));else if("logic-error"===r){var i=o.default.getErrorMsg(u);n(new Error(i.content))}}else o.default.logicError(t,e.res)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2);t.default=function(e){return o.default.uploadFile(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3);t.default=function(e){o.default.setSession(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3);t.default=function(){return o.default.main()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(1);t.default=function(){return o.default.session}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(1);t.default=function(){return{urlPerfix:o.default.urlPerfix,sessionExpireTime:o.default.sessionExpireTime,sessionExpireKey:o.default.sessionExpireKey,sessionExpire:r.default.sessionExpire}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.version="1.2.9"}]).default; |