Commit e183300d50df2e32ecc382e1ce96c019d42cdac5
1 parent
8b6211c6
app.js get请求超时解决
Showing
4 changed files
with
339 additions
and
262 deletions
app.js
| ... | ... | @@ -69,11 +69,12 @@ App({ |
| 69 | 69 | windowWidth: 0, //整个窗体的宽度 |
| 70 | 70 | room_id: null, //直播间分享的房间ID |
| 71 | 71 | room_goods_id: null, //直播间分享的商品ID |
| 72 | - | |
| 72 | + fail_url: new Map(), | |
| 73 | 73 | }, |
| 74 | 74 | auth: o, |
| 75 | 75 | request: a, |
| 76 | 76 | onLaunch: function (option) { |
| 77 | + | |
| 77 | 78 | //初始化美图测肤插件 |
| 78 | 79 | // var plugin = requirePlugin('mtSkinSdk'); |
| 79 | 80 | // params.login_id = wx.getStorageSync('login_id') || '' // 可将登录id缓存下来,方便下次进入小程序直接获取 |
| ... | ... | @@ -81,8 +82,7 @@ App({ |
| 81 | 82 | if(option) this.globalData.scene=option.scene; |
| 82 | 83 | wx.hideTabBar(); |
| 83 | 84 | this.initExt(); |
| 84 | - | |
| 85 | - | |
| 85 | + // this.overShare() | |
| 86 | 86 | |
| 87 | 87 | //检查更新 |
| 88 | 88 | this.checkUpdateVersion(); |
| ... | ... | @@ -206,7 +206,21 @@ App({ |
| 206 | 206 | this.getConfig(); |
| 207 | 207 | }, |
| 208 | 208 | |
| 209 | - | |
| 209 | + // overShare:function() { | |
| 210 | + // // 监听路由切换 | |
| 211 | + // wx.onAppRoute(function(res) { | |
| 212 | + // console.log('route',res) | |
| 213 | + // let pages = getCurrentPages() | |
| 214 | + // let view = pages[pages.length - 1] | |
| 215 | + // if(view) { | |
| 216 | + // wx.showShareMenu({ | |
| 217 | + // withShareTicket:true, | |
| 218 | + // menus:['shareAppMessage','shareTimeline'] | |
| 219 | + // }) | |
| 220 | + // } | |
| 221 | + // }) | |
| 222 | + // }, | |
| 223 | + | |
| 210 | 224 | //---初始化第三方---- |
| 211 | 225 | initExt: function () { |
| 212 | 226 | var tt = t; |
| ... | ... | @@ -962,8 +976,4 @@ App({ |
| 962 | 976 | }).then(res=>{}) |
| 963 | 977 | } |
| 964 | 978 | } |
| 965 | - | |
| 966 | - | |
| 967 | - | |
| 968 | - | |
| 969 | 979 | }); | ... | ... |
app.json
| ... | ... | @@ -258,6 +258,11 @@ |
| 258 | 258 | }, |
| 259 | 259 | "useExtendedLib": { |
| 260 | 260 | "weui": true |
| 261 | + }, | |
| 262 | + "networkTimeout": { | |
| 263 | + "request": 15000, | |
| 264 | + "downloadFile": 15000, | |
| 265 | + "uploadFile":15000, | |
| 266 | + "connectSocket":15000 | |
| 261 | 267 | } |
| 262 | - | |
| 263 | 268 | } |
| 264 | 269 | \ No newline at end of file | ... | ... |
utils/request.js
| 1 | 1 | var t = require("util.js"); |
| 2 | 2 | |
| 3 | 3 | module.exports = { |
| 4 | - uniqueId: "", | |
| 5 | - // i: url | |
| 6 | - // e: method | |
| 7 | - // s: data | |
| 8 | - // a: header | |
| 9 | - request: function(e, i, o) { | |
| 10 | - var n = this, a = o.header ? o.header : { | |
| 11 | - "content-type": "application/x-www-form-urlencoded" | |
| 12 | - //"content-type": "application/texts" | |
| 13 | - }, s = "GET" != (e = e.toUpperCase()) && o.data ? t.json2Form(o.data) : o.data; | |
| 14 | - i = this.modifyUrl(i, o), | |
| 4 | + uniqueId: "", | |
| 5 | + // i: url | |
| 6 | + // e: method | |
| 7 | + // s: data | |
| 8 | + // a: header | |
| 9 | + request: function (e, i, o, delay = 1000) { | |
| 10 | + this.check_timeout(i, delay, () => { | |
| 11 | + var n = this, a = o.header ? o.header : { | |
| 12 | + "content-type": "application/x-www-form-urlencoded" | |
| 13 | + //"content-type": "application/texts" | |
| 14 | + }, s = "GET" != (e = e.toUpperCase()) && o.data ? t.json2Form(o.data) : o.data; | |
| 15 | + i = this.modifyUrl(i, o), | |
| 15 | 16 | o.isShowLoading && this.showLoading(); |
| 16 | - var req=wx.request(Object.assign({}, o, { | |
| 17 | - url: i, | |
| 18 | - method: e, | |
| 19 | - data: s, | |
| 20 | - header: a, | |
| 21 | - success: function(t) { | |
| 22 | - o.isShowLoading && n.hideLoading(), n.doSuccess(o, t); | |
| 23 | - }, | |
| 24 | - fail: function(t) { | |
| 25 | - o.isShowLoading && n.hideLoading(), n.doFail(o, t); | |
| 26 | - } | |
| 27 | - })); | |
| 28 | - return req; | |
| 29 | - }, | |
| 17 | + var req = wx.request(Object.assign({}, o, { | |
| 18 | + url: i, | |
| 19 | + method: e, | |
| 20 | + data: s, | |
| 21 | + header: a, | |
| 22 | + success: function (t) { | |
| 23 | + o.isShowLoading && n.hideLoading(), n.doSuccess(o, t); | |
| 24 | + }, | |
| 25 | + fail(err) { | |
| 26 | + o.isShowLoading && n.hideLoading(); | |
| 27 | + if (err && err.errMsg && err.errMsg.indexOf('timeout') != -1) { | |
| 28 | + getApp().globalData.fail_url.set(t.gettimestamp(), i); | |
| 29 | + console.log('请求超时url---', getApp().globalData.fail_url); | |
| 30 | + n.doTimeOut(o, t); | |
| 31 | + } else { | |
| 32 | + n.doFail(o, t); | |
| 33 | + } | |
| 34 | + } | |
| 35 | + })); | |
| 36 | + return req; | |
| 37 | + }) | |
| 38 | + }, | |
| 30 | 39 | get: function (t, e) { |
| 31 | - return this.request("GET", t, e); | |
| 32 | - }, | |
| 40 | + console.log(t, e); | |
| 41 | + return this.request("GET", t, e); | |
| 42 | + }, | |
| 33 | 43 | post: function (t, e) { |
| 34 | - this.request("POST", t, e); | |
| 35 | - }, | |
| 44 | + this.request("POST", t, e); | |
| 45 | + }, | |
| 36 | 46 | delete: function (t, e) { |
| 37 | - this.request("DELETE", t, e); | |
| 38 | - }, | |
| 47 | + this.request("DELETE", t, e); | |
| 48 | + }, | |
| 39 | 49 | put: function (t, e) { |
| 40 | - this.request("PUT", t, e); | |
| 41 | - }, | |
| 50 | + this.request("PUT", t, e); | |
| 51 | + }, | |
| 42 | 52 | |
| 43 | 53 | |
| 44 | - uploadFile: function(t, e) { | |
| 45 | - var i = this; | |
| 46 | - t = this.modifyUrl(t, e), | |
| 47 | - // console.log("app.request", t, e), | |
| 48 | - e.isShowLoading = void 0 === e.isShowLoading || e.isShowLoading, | |
| 49 | - e.isShowLoading && this.showLoading(), wx.uploadFile(Object.assign({}, e, { | |
| 50 | - url: t, | |
| 51 | - filePath: e.filePath, | |
| 52 | - name: e.name, | |
| 53 | - success: function(t) { | |
| 54 | - i.hideLoading(); | |
| 55 | - if(t.statusCode==200) | |
| 56 | - t.data = JSON.parse(i.filterJsonData(t.data)); | |
| 57 | - else { t={code:-1,msg:'调用接口失败'};} | |
| 58 | - i.doSuccess(e, t); | |
| 59 | - }, | |
| 60 | - fail: function(t) { | |
| 61 | - i.hideLoading(), i.doFail(e, t); | |
| 62 | - } | |
| 63 | - })); | |
| 64 | - }, | |
| 54 | + uploadFile: function (t, e) { | |
| 55 | + var i = this; | |
| 56 | + t = this.modifyUrl(t, e), | |
| 57 | + // console.log("app.request", t, e), | |
| 58 | + e.isShowLoading = void 0 === e.isShowLoading || e.isShowLoading, | |
| 59 | + e.isShowLoading && this.showLoading(), wx.uploadFile(Object.assign({}, e, { | |
| 60 | + url: t, | |
| 61 | + filePath: e.filePath, | |
| 62 | + name: e.name, | |
| 63 | + success: function (t) { | |
| 64 | + i.hideLoading(); | |
| 65 | + if (t.statusCode == 200) | |
| 66 | + t.data = JSON.parse(i.filterJsonData(t.data)); | |
| 67 | + else { t = { code: -1, msg: '调用接口失败' }; } | |
| 68 | + i.doSuccess(e, t); | |
| 69 | + }, | |
| 70 | + fail: function (t) { | |
| 71 | + i.hideLoading(), i.doFail(e, t); | |
| 72 | + } | |
| 73 | + })); | |
| 74 | + }, | |
| 65 | 75 | |
| 66 | - doSuccess: function(t, e) { | |
| 67 | - if (console.log("app.request", e), 1 != t.successReload) { | |
| 68 | - if (200 != e.statusCode) return this.showError("请求出错[" + e.statusCode + "]", t), | |
| 69 | - !1; | |
| 76 | + doSuccess: function (t, e) { | |
| 77 | + if (console.log("app.request", e), 1 != t.successReload) { | |
| 78 | + if (200 != e.statusCode) return this.showError("请求出错[" + e.statusCode + "]", t), | |
| 79 | + !1; | |
| 70 | 80 | |
| 71 | - if(e.data.status!=undefined){ | |
| 72 | - if (1 != e.data.status) { | |
| 73 | - if ("function" == typeof t.failStatus && 0 == t.failStatus(e)) return !1; | |
| 74 | - if (-100 == e.data.status || -101 == e.data.status || -102 == e.data.status) { | |
| 75 | - var i = getApp(); | |
| 76 | - return i.auth.clearAuth(), i.showWarning("正在重新登录", function() { | |
| 77 | - var t = getCurrentPages(); | |
| 78 | - "pages/user/index/index" != t[t.length - 1].route ? wx.navigateTo({ | |
| 79 | - url: "/pages/user/index/index" | |
| 80 | - }) : wx.navigateTo({ | |
| 81 | - url: "/pages/index/index/index" | |
| 82 | - }); | |
| 83 | - }, null, !0), !1; | |
| 84 | - } | |
| 85 | - var o = "string" == typeof e.data.msg ? e.data.msg : "数据格式错误"; | |
| 86 | - return this.showError(o, t), !1; | |
| 87 | - } | |
| 88 | - } | |
| 89 | - "function" == typeof t.success && t.success(e); | |
| 90 | - } else "function" == typeof t.success && t.success(e); | |
| 91 | - }, | |
| 92 | - doFail: function(t, e) { | |
| 93 | - if (console.log("app.request", e), "function" == typeof t.fail && 0 == t.fail(e)) return !1; | |
| 94 | - this.showError("请求失败", t); | |
| 95 | - }, | |
| 96 | - filterJsonData: function(t) { | |
| 97 | - for (var e = t, i = 0; i < t.length && (e = t.substr(i), "{" != t.charAt(i)); i++) ; | |
| 98 | - return e; | |
| 99 | - }, | |
| 100 | - modifyUrl: function(t, e) { | |
| 101 | - if (void 0 === e && (e = {}), 0 != t.indexOf("http") && ("string" == typeof e.baseUrl ? t = e.baseUrl + t : void 0 === e.baseUrl && (t = getApp().globalData.setting.url + t)), | |
| 102 | - "boolean" == typeof e.notAuthParam && 1 == e.notAuthParam) return t; | |
| 103 | - //var i = "is_json=1&unique_id=" + this.getUniqueId() + "&token=" + this.getToken(); | |
| 104 | - return t += (t.indexOf("?") > 0 ? "&" : "?");// + i; | |
| 105 | - }, | |
| 81 | + if (e.data.status != undefined) { | |
| 82 | + if (1 != e.data.status) { | |
| 83 | + if ("function" == typeof t.failStatus && 0 == t.failStatus(e)) return !1; | |
| 84 | + if (-100 == e.data.status || -101 == e.data.status || -102 == e.data.status) { | |
| 85 | + var i = getApp(); | |
| 86 | + return i.auth.clearAuth(), i.showWarning("正在重新登录", function () { | |
| 87 | + var t = getCurrentPages(); | |
| 88 | + "pages/user/index/index" != t[t.length - 1].route ? wx.navigateTo({ | |
| 89 | + url: "/pages/user/index/index" | |
| 90 | + }) : wx.navigateTo({ | |
| 91 | + url: "/pages/index/index/index" | |
| 92 | + }); | |
| 93 | + }, null, !0), !1; | |
| 94 | + } | |
| 95 | + var o = "string" == typeof e.data.msg ? e.data.msg : "数据格式错误"; | |
| 96 | + return this.showError(o, t), !1; | |
| 97 | + } | |
| 98 | + } | |
| 99 | + "function" == typeof t.success && t.success(e); | |
| 100 | + } else "function" == typeof t.success && t.success(e); | |
| 101 | + }, | |
| 102 | + doTimeOut(t, e) { | |
| 103 | + if (console.log("app.request", e), "function" == typeof t.fail && 0 == t.fail(e)) return !1; | |
| 104 | + this.showError("请求超时", t); | |
| 105 | + }, | |
| 106 | + doFail: function (t, e) { | |
| 107 | + if (console.log("app.request", e), "function" == typeof t.fail && 0 == t.fail(e)) return !1; | |
| 108 | + this.showError("请求失败", t); | |
| 109 | + }, | |
| 110 | + filterJsonData: function (t) { | |
| 111 | + for (var e = t, i = 0; i < t.length && (e = t.substr(i), "{" != t.charAt(i)); i++); | |
| 112 | + return e; | |
| 113 | + }, | |
| 114 | + modifyUrl: function (t, e) { | |
| 115 | + if (void 0 === e && (e = {}), 0 != t.indexOf("http") && ("string" == typeof e.baseUrl ? t = e.baseUrl + t : void 0 === e.baseUrl && (t = getApp().globalData.setting.url + t)), | |
| 116 | + "boolean" == typeof e.notAuthParam && 1 == e.notAuthParam) return t; | |
| 117 | + //var i = "is_json=1&unique_id=" + this.getUniqueId() + "&token=" + this.getToken(); | |
| 118 | + return t += (t.indexOf("?") > 0 ? "&" : "?");// + i; | |
| 119 | + }, | |
| 106 | 120 | |
| 107 | - modifyUrl2: function (t, e) { | |
| 108 | - if (void 0 === e && (e = {}), 0 != t.indexOf("http") && ("string" == typeof e.baseUrl ? t = e.baseUrl + t : void 0 === e.baseUrl && (t = getApp().globalData.setting.hurl + t)), | |
| 121 | + modifyUrl2: function (t, e) { | |
| 122 | + if (void 0 === e && (e = {}), 0 != t.indexOf("http") && ("string" == typeof e.baseUrl ? t = e.baseUrl + t : void 0 === e.baseUrl && (t = getApp().globalData.setting.hurl + t)), | |
| 109 | 123 | "boolean" == typeof e.notAuthParam && 1 == e.notAuthParam) return t; |
| 110 | 124 | //var i = "is_json=1&unique_id=" + this.getUniqueId() + "&token=" + this.getToken(); |
| 111 | 125 | return t += (t.indexOf("?") > 0 ? "&" : "?");// + i; |
| 112 | 126 | }, |
| 113 | 127 | |
| 114 | 128 | |
| 115 | - getToken: function() { | |
| 116 | - var t = getApp(); | |
| 117 | - return null == t.globalData.userInfo ? "" : t.globalData.userInfo.token; | |
| 118 | - }, | |
| 119 | - getUniqueId: function() { | |
| 120 | - return this.uniqueId ? this.uniqueId : (this.uniqueId = "miniapp" + t.randomString(17), | |
| 121 | - this.uniqueId); | |
| 122 | - }, | |
| 123 | - showLoading: function() { | |
| 124 | - wx.showLoading({ | |
| 125 | - title: "加载中", | |
| 126 | - mask:true, | |
| 127 | - }); | |
| 128 | - }, | |
| 129 | - hideLoading: function() { | |
| 130 | - wx.hideLoading(); | |
| 131 | - }, | |
| 132 | - showError: function(t, e) { | |
| 133 | - wx.showModal({ | |
| 134 | - title: t, | |
| 135 | - showCancel: !1, | |
| 136 | - complete: function() { | |
| 137 | - 1 == e.failRollback && wx.navigateBack(); | |
| 138 | - } | |
| 139 | - }); | |
| 140 | - }, | |
| 129 | + getToken: function () { | |
| 130 | + var t = getApp(); | |
| 131 | + return null == t.globalData.userInfo ? "" : t.globalData.userInfo.token; | |
| 132 | + }, | |
| 133 | + getUniqueId: function () { | |
| 134 | + return this.uniqueId ? this.uniqueId : (this.uniqueId = "miniapp" + t.randomString(17), | |
| 135 | + this.uniqueId); | |
| 136 | + }, | |
| 137 | + showLoading: function () { | |
| 138 | + wx.showLoading({ | |
| 139 | + title: "加载中", | |
| 140 | + mask: true, | |
| 141 | + }); | |
| 142 | + }, | |
| 143 | + hideLoading: function () { | |
| 144 | + wx.hideLoading(); | |
| 145 | + }, | |
| 146 | + showError: function (t, e) { | |
| 147 | + wx.showModal({ | |
| 148 | + title: t, | |
| 149 | + showCancel: !1, | |
| 150 | + complete: function () { | |
| 151 | + 1 == e.failRollback && wx.navigateBack(); | |
| 152 | + } | |
| 153 | + }); | |
| 154 | + }, | |
| 141 | 155 | |
| 142 | - request2: function (e, i, o) { | |
| 156 | + request2: function (e, i, o) { | |
| 143 | 157 | var n = this, a = o.header ? o.header : { |
| 144 | 158 | "content-type": "application/x-www-form-urlencoded" |
| 145 | 159 | }, s = "GET" != (e = e.toUpperCase()) && o.data ? t.json2Form(o.data) : o.data; |
| ... | ... | @@ -150,7 +164,7 @@ module.exports = { |
| 150 | 164 | data: s, |
| 151 | 165 | header: a, |
| 152 | 166 | success: function (t) { |
| 153 | - o.isShowLoading && n.hideLoading(), n.doSuccess2(o, t); | |
| 167 | + o.isShowLoading && n.hideLoading(), n.doSuccess2(o, t); | |
| 154 | 168 | }, |
| 155 | 169 | fail: function (t) { |
| 156 | 170 | o.isShowLoading && n.hideLoading(), n.doFail(o, t); |
| ... | ... | @@ -160,7 +174,7 @@ module.exports = { |
| 160 | 174 | get2: function (t, e) { |
| 161 | 175 | this.request2("GET", t, e); |
| 162 | 176 | }, |
| 163 | - doSuccess2: function (t, e){ | |
| 177 | + doSuccess2: function (t, e) { | |
| 164 | 178 | if (console.log("app.request", e), 1 != t.successReload) { |
| 165 | 179 | if (200 != e.statusCode) return this.showError("请求出错[" + e.statusCode + "]", t), |
| 166 | 180 | !1; |
| ... | ... | @@ -173,146 +187,184 @@ module.exports = { |
| 173 | 187 | } else "function" == typeof t.success && t.success(e); |
| 174 | 188 | }, |
| 175 | 189 | |
| 190 | + check_timeout(url, delay, func) { | |
| 191 | + let now = t.gettimestamp(); | |
| 192 | + let fail_url = getApp().globalData.fail_url; | |
| 193 | + if (fail_url.size > 0) { | |
| 194 | + try { | |
| 195 | + fail_url.forEach((value, key) => { | |
| 196 | + if (value.indexOf(url) > 0 || value === url) { | |
| 197 | + if (now - key <= delay) { | |
| 198 | + throw new Error('请求超时'); | |
| 199 | + } else { | |
| 200 | + fail_url.delete(key); | |
| 201 | + } | |
| 202 | + } | |
| 203 | + }) | |
| 204 | + } catch (error) { | |
| 205 | + if (error) { | |
| 206 | + wx.showModal({ | |
| 207 | + title: '请求超时', | |
| 208 | + showCancel: !1, | |
| 209 | + }); | |
| 210 | + return false; | |
| 211 | + } | |
| 212 | + } | |
| 213 | + } | |
| 214 | + typeof func === "function" && func() | |
| 215 | + }, | |
| 216 | + | |
| 176 | 217 | //---promise的使用get---- |
| 177 | - promiseGet:function(url,data){ | |
| 178 | - var th=this; | |
| 179 | - if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url; | |
| 218 | + promiseGet: function (url, data, delay = 10000) { | |
| 219 | + return new Promise((resolve, reject) => { | |
| 220 | + this.check_timeout(url, delay, () => { | |
| 221 | + var th = this; | |
| 222 | + if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url; | |
| 223 | + data.isShowLoading && th.showLoading(); | |
| 224 | + wx.request({ | |
| 225 | + url, | |
| 226 | + method: 'GET', | |
| 227 | + header: { "content-type": "application/x-www-form-urlencoded" }, | |
| 228 | + data: data.data, | |
| 229 | + success(res) { | |
| 230 | + data.isShowLoading && th.hideLoading(); | |
| 231 | + resolve(res); | |
| 232 | + }, | |
| 233 | + fail(err) { | |
| 234 | + data.isShowLoading && th.hideLoading(); | |
| 235 | + if (err && err.errMsg && err.errMsg.indexOf('timeout') != -1) { | |
| 236 | + getApp().globalData.fail_url.set(t.gettimestamp(), url); | |
| 237 | + console.log('请求超时url---', getApp().globalData.fail_url); | |
| 238 | + th.doTimeOut() | |
| 239 | + }else{ | |
| 240 | + reject(err); | |
| 241 | + } | |
| 242 | + } | |
| 243 | + }) | |
| 244 | + }) | |
| 245 | + }) | |
| 246 | + }, | |
| 247 | + | |
| 248 | + //---promise的使用post---- | |
| 249 | + promisePost: function (url, data) { | |
| 250 | + var th = this; | |
| 251 | + if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url; | |
| 252 | + var post_data = data.data; | |
| 253 | + var header = { "content-type": "application/x-www-form-urlencoded" }; | |
| 254 | + if (data.is_json) { | |
| 255 | + header = { 'content-type': 'application/json' }; | |
| 256 | + post_data = JSON.stringify(post_data); | |
| 257 | + }; | |
| 180 | 258 | return new Promise((resolve, reject) => { |
| 181 | 259 | data.isShowLoading && th.showLoading(); |
| 182 | 260 | wx.request({ |
| 183 | 261 | url, |
| 184 | - method: 'GET', | |
| 185 | - header: {"content-type": "application/x-www-form-urlencoded" }, | |
| 186 | - data:data.data, | |
| 262 | + method: 'POST', | |
| 263 | + header: header, | |
| 264 | + data: post_data, | |
| 187 | 265 | success(res) { |
| 188 | - data.isShowLoading && th.hideLoading(); | |
| 189 | - resolve(res); | |
| 266 | + data.isShowLoading && th.hideLoading(); | |
| 267 | + resolve(res); | |
| 190 | 268 | }, |
| 191 | 269 | fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } |
| 192 | 270 | }) |
| 193 | 271 | }) |
| 194 | 272 | }, |
| 195 | 273 | |
| 196 | - //---promise的使用post---- | |
| 197 | - promisePost:function(url,data){ | |
| 198 | - var th=this; | |
| 199 | - if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url; | |
| 200 | - var post_data=data.data; | |
| 201 | - var header={"content-type": "application/x-www-form-urlencoded" }; | |
| 202 | - if(data.is_json){ | |
| 203 | - header={ 'content-type': 'application/json'}; | |
| 204 | - post_data=JSON.stringify(post_data); | |
| 205 | - }; | |
| 206 | - return new Promise((resolve, reject) => { | |
| 207 | - data.isShowLoading && th.showLoading(); | |
| 208 | - wx.request({ | |
| 209 | - url, | |
| 210 | - method: 'POST', | |
| 211 | - header: header, | |
| 212 | - data:post_data, | |
| 213 | - success(res) { | |
| 214 | - data.isShowLoading && th.hideLoading(); | |
| 215 | - resolve(res); | |
| 216 | - }, | |
| 217 | - fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } | |
| 218 | - }) | |
| 219 | - }) | |
| 220 | - }, | |
| 274 | + //---promise的使用delete---- | |
| 275 | + promiseDelete: function (url, data) { | |
| 276 | + var th = this; | |
| 277 | + if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url; | |
| 278 | + return new Promise((resolve, reject) => { | |
| 279 | + data.isShowLoading && th.showLoading(); | |
| 280 | + wx.request({ | |
| 281 | + url, | |
| 282 | + method: 'DELETE', | |
| 283 | + header: { "content-type": "application/x-www-form-urlencoded" }, | |
| 284 | + data: data.data, | |
| 285 | + success(res) { | |
| 286 | + data.isShowLoading && th.hideLoading(); | |
| 287 | + resolve(res); | |
| 288 | + }, | |
| 289 | + fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } | |
| 290 | + }) | |
| 291 | + }) | |
| 292 | + }, | |
| 221 | 293 | |
| 222 | - //---promise的使用delete---- | |
| 223 | - promiseDelete:function(url,data){ | |
| 224 | - var th=this; | |
| 225 | - if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url; | |
| 226 | - return new Promise((resolve, reject) => { | |
| 227 | - data.isShowLoading && th.showLoading(); | |
| 228 | - wx.request({ | |
| 229 | - url, | |
| 230 | - method: 'DELETE', | |
| 231 | - header: {"content-type": "application/x-www-form-urlencoded" }, | |
| 232 | - data:data.data, | |
| 233 | - success(res) { | |
| 234 | - data.isShowLoading && th.hideLoading(); | |
| 235 | - resolve(res); | |
| 236 | - }, | |
| 237 | - fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } | |
| 238 | - }) | |
| 239 | - }) | |
| 240 | - }, | |
| 241 | - | |
| 242 | - | |
| 243 | - //---promise的使用put---- | |
| 244 | - promisePut:function(url,data){ | |
| 245 | - var th=this; | |
| 246 | - if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url; | |
| 247 | - var post_data=data.data; | |
| 248 | - var header={"content-type": "application/x-www-form-urlencoded" }; | |
| 249 | - if(data.is_json){ | |
| 250 | - header={ 'content-type': 'application/json'}; | |
| 251 | - post_data=JSON.stringify(post_data); | |
| 252 | - }; | |
| 253 | - return new Promise((resolve, reject) => { | |
| 254 | - data.isShowLoading && th.showLoading(); | |
| 255 | - wx.request({ | |
| 256 | - url, | |
| 257 | - method: 'PUT', | |
| 258 | - header: header, | |
| 259 | - data:post_data, | |
| 260 | - success(res) { | |
| 261 | - data.isShowLoading && th.hideLoading(); | |
| 262 | - resolve(res); | |
| 263 | - }, | |
| 264 | - fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } | |
| 265 | - }) | |
| 266 | - }) | |
| 267 | - }, | |
| 268 | 294 | |
| 269 | - //--------具有时间限制的读取接口---------- | |
| 270 | - time_limit_get(time,url,data){ | |
| 271 | - var req=this.get(url,data); | |
| 272 | - setTimeout(function () { | |
| 273 | - if(req) req.abort(); | |
| 274 | - },time*1000) | |
| 275 | - }, | |
| 276 | - | |
| 277 | - /** | |
| 278 | - * @param {Object} url //url地址 | |
| 279 | - * @param {Object} data //data入参 | |
| 280 | - * @param {Object} succ //成功的回调 | |
| 281 | - * @param {Object} fail //失败的回调 | |
| 282 | - */ | |
| 283 | - json_post:function(url,data,succ,fail,mathod){ | |
| 284 | - var th=this; | |
| 285 | - var Mathod="POST"; | |
| 295 | + //---promise的使用put---- | |
| 296 | + promisePut: function (url, data) { | |
| 297 | + var th = this; | |
| 298 | + if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url; | |
| 299 | + var post_data = data.data; | |
| 300 | + var header = { "content-type": "application/x-www-form-urlencoded" }; | |
| 301 | + if (data.is_json) { | |
| 302 | + header = { 'content-type': 'application/json' }; | |
| 303 | + post_data = JSON.stringify(post_data); | |
| 304 | + }; | |
| 305 | + return new Promise((resolve, reject) => { | |
| 306 | + data.isShowLoading && th.showLoading(); | |
| 307 | + wx.request({ | |
| 308 | + url, | |
| 309 | + method: 'PUT', | |
| 310 | + header: header, | |
| 311 | + data: post_data, | |
| 312 | + success(res) { | |
| 313 | + data.isShowLoading && th.hideLoading(); | |
| 314 | + resolve(res); | |
| 315 | + }, | |
| 316 | + fail(err) { data.isShowLoading && th.hideLoading(); reject(err); } | |
| 317 | + }) | |
| 318 | + }) | |
| 319 | + }, | |
| 320 | + | |
| 321 | + //--------具有时间限制的读取接口---------- | |
| 322 | + time_limit_get(time, url, data) { | |
| 323 | + var req = this.get(url, data); | |
| 324 | + setTimeout(function () { | |
| 325 | + if (req) req.abort(); | |
| 326 | + }, time * 1000) | |
| 327 | + }, | |
| 328 | + | |
| 329 | + /** | |
| 330 | + * @param {Object} url //url地址 | |
| 331 | + * @param {Object} data //data入参 | |
| 332 | + * @param {Object} succ //成功的回调 | |
| 333 | + * @param {Object} fail //失败的回调 | |
| 334 | + */ | |
| 335 | + json_post: function (url, data, succ, fail, mathod) { | |
| 336 | + var th = this; | |
| 337 | + var Mathod = "POST"; | |
| 286 | 338 | |
| 287 | 339 | if (mathod) Mathod = mathod; |
| 288 | - this.showLoading(); | |
| 289 | - if(url.indexOf("http")==-1) url=getApp().globalData.setting.url +url; | |
| 290 | - var str = JSON.stringify(data); | |
| 291 | - wx.request({ | |
| 292 | - url: url, | |
| 293 | - data: str, | |
| 294 | - method: Mathod, | |
| 295 | - header: { | |
| 296 | - 'content-type': 'application/json' | |
| 297 | - },// 设置请求的 header | |
| 298 | - success: function (res) { succ(res);th.hideLoading(); }, | |
| 299 | - fail:function(res){fail(res);} | |
| 300 | - }) | |
| 301 | - }, | |
| 302 | - | |
| 303 | - promise_downimg(url){ | |
| 304 | - return new Promise((resolve, reject) => { | |
| 305 | - wx.getImageInfo({ | |
| 306 | - src: url, | |
| 307 | - success: function(res) { | |
| 308 | - //res.path是网络图片的本地地址 | |
| 309 | - resolve(res.path); | |
| 310 | - }, | |
| 311 | - fail: function(err) { | |
| 312 | - reject(err); | |
| 313 | - } | |
| 314 | - }); | |
| 315 | - }) | |
| 316 | - } | |
| 340 | + this.showLoading(); | |
| 341 | + if (url.indexOf("http") == -1) url = getApp().globalData.setting.url + url; | |
| 342 | + var str = JSON.stringify(data); | |
| 343 | + wx.request({ | |
| 344 | + url: url, | |
| 345 | + data: str, | |
| 346 | + method: Mathod, | |
| 347 | + header: { | |
| 348 | + 'content-type': 'application/json' | |
| 349 | + },// 设置请求的 header | |
| 350 | + success: function (res) { succ(res); th.hideLoading(); }, | |
| 351 | + fail: function (res) { fail(res); } | |
| 352 | + }) | |
| 353 | + }, | |
| 354 | + | |
| 355 | + promise_downimg(url) { | |
| 356 | + return new Promise((resolve, reject) => { | |
| 357 | + wx.getImageInfo({ | |
| 358 | + src: url, | |
| 359 | + success: function (res) { | |
| 360 | + //res.path是网络图片的本地地址 | |
| 361 | + resolve(res.path); | |
| 362 | + }, | |
| 363 | + fail: function (err) { | |
| 364 | + reject(err); | |
| 365 | + } | |
| 366 | + }); | |
| 367 | + }) | |
| 368 | + } | |
| 317 | 369 | |
| 318 | 370 | }; |
| 319 | 371 | \ No newline at end of file | ... | ... |
utils/util.js
| ... | ... | @@ -16,11 +16,8 @@ function e(e) { |
| 16 | 16 | //节流 |
| 17 | 17 | let _throttle =function (fn, interval) { |
| 18 | 18 | var enterTime = 0;//触发的时间 |
| 19 | - console.log(1); | |
| 20 | - | |
| 21 | 19 | var gapTime = interval || 300 ;//间隔时间,如果interval不传,则默认300ms |
| 22 | 20 | return function() { |
| 23 | - console.log(2); | |
| 24 | 21 | var context = this; |
| 25 | 22 | var backTime = new Date();//第一次函数return即触发的时间 |
| 26 | 23 | if (backTime - enterTime > gapTime) { |
| ... | ... | @@ -29,6 +26,18 @@ let _throttle =function (fn, interval) { |
| 29 | 26 | } |
| 30 | 27 | }; |
| 31 | 28 | }.bind(this); |
| 29 | + | |
| 30 | +function _debounce(func, wait) { | |
| 31 | + let timer; | |
| 32 | + return function() { | |
| 33 | + let context = this; // 注意 this 指向 | |
| 34 | + let args = arguments; // arguments中存着e | |
| 35 | + if (timer) clearTimeout(timer); | |
| 36 | + timer = setTimeout(() => { | |
| 37 | + func.apply(this, args) | |
| 38 | + }, wait) | |
| 39 | + } | |
| 40 | +} | |
| 32 | 41 | function utf16to8(str) { |
| 33 | 42 | var out, i, len, c; out = ""; len = str.length; |
| 34 | 43 | for (i = 0; i < len; i++) { |
| ... | ... | @@ -616,5 +625,6 @@ module.exports = { |
| 616 | 625 | convert_arr_key:convert_arr_key, //将JS数组对象按其某个键值重组成Map对象 |
| 617 | 626 | ajax_ok:ajax_ok, //将JS数组对象按其某个键值重组成Map对象 |
| 618 | 627 | ajax_ok2:ajax_ok2, //将JS数组对象按其某个键值重组成Map对象 |
| 619 | - wx_back:wx_back | |
| 628 | + wx_back:wx_back, | |
| 629 | + _debounce, | |
| 620 | 630 | }; | ... | ... |