@tmsfe/tms-core 0.0.196 → 0.0.197
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/request.js +6 -16
package/package.json
CHANGED
package/src/request.js
CHANGED
|
@@ -16,17 +16,7 @@ import reporter from './report/index';
|
|
|
16
16
|
import logger from './logger';
|
|
17
17
|
|
|
18
18
|
// 微信底层错误重试码 600001-微信cronet组件错误 600003-网络中断 5-接口超时
|
|
19
|
-
export const
|
|
20
|
-
600001: {
|
|
21
|
-
waitTime: 500,
|
|
22
|
-
},
|
|
23
|
-
600003: {
|
|
24
|
-
waitTime: 300,
|
|
25
|
-
},
|
|
26
|
-
5: {
|
|
27
|
-
waitTime: 500,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
19
|
+
export const RETRY_WX_ERR_NOS = [600001, 600003, 5];
|
|
30
20
|
|
|
31
21
|
/**
|
|
32
22
|
* 用于序列化需要签名的参数
|
|
@@ -384,6 +374,7 @@ export default class Request {
|
|
|
384
374
|
* @param {object} header 自定义的请求头
|
|
385
375
|
* @returns {Promise} 接口返回结果
|
|
386
376
|
*/
|
|
377
|
+
// eslint-disable-next-line complexity
|
|
387
378
|
async createRequestTask(path, param = {}, method = 'POST', header = {}) {
|
|
388
379
|
try {
|
|
389
380
|
const res = await this.invokeRequest(path, param, method, header);
|
|
@@ -400,18 +391,17 @@ export default class Request {
|
|
|
400
391
|
return res;
|
|
401
392
|
} catch (err) {
|
|
402
393
|
// 微信系统errno:在重试码白名单内,重试
|
|
403
|
-
const { retryFlag, retryApiWhiteMap } = wx.tmsFlagMap || {};
|
|
394
|
+
const { retryFlag, retryApiWhiteMap, requestRetryCount } = wx.tmsFlagMap || {};
|
|
404
395
|
const isWhiteApi = retryApiWhiteMap?.home === 'all' ? true : (retryApiWhiteMap?.home || []).includes(path);
|
|
405
|
-
const canRetry = errno =>
|
|
396
|
+
const canRetry = errno => RETRY_WX_ERR_NOS.includes(errno) && isWhiteApi;
|
|
406
397
|
if (retryFlag && canRetry(err?.errno)) {
|
|
407
|
-
const waitTime = RETRY_WX_ERRNO_MAP[err.errno]?.waitTime || 300;
|
|
408
398
|
return await this.handleReTry(path, param, method, header, {
|
|
409
399
|
reportMsg: {
|
|
410
400
|
errno: err.errno,
|
|
411
401
|
errMsg: err.errMsg,
|
|
412
402
|
},
|
|
413
|
-
|
|
414
|
-
waitTime, // 微信底层错误300ms后重试一次
|
|
403
|
+
maxRetryCount: requestRetryCount, // 重试次数
|
|
404
|
+
waitTime: 300, // 微信底层错误300ms后重试一次
|
|
415
405
|
isSuccess: retryRes => !canRetry(retryRes?.errno),
|
|
416
406
|
});
|
|
417
407
|
}
|