From a2e3c8033023f8b2d85b3eefc97bf8e21fc7c3c9 Mon Sep 17 00:00:00 2001 From: anotherso1a <1181581742@qq.com> Date: Mon, 4 Mar 2024 15:04:00 +0800 Subject: [PATCH 1/4] fix: fix runtime err [can't read property 'success' of undefined] --- packages/api-proxy/src/common/js/promisify.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api-proxy/src/common/js/promisify.js b/packages/api-proxy/src/common/js/promisify.js index a3d98627ce..5bb3159697 100644 --- a/packages/api-proxy/src/common/js/promisify.js +++ b/packages/api-proxy/src/common/js/promisify.js @@ -69,7 +69,7 @@ function promisify (listObj, whiteList, customBlackList) { result[key] = function (...args) { const obj = args[0] - if (promisifyFilter(key) && !(obj.success || obj.fail || obj.complete)) { + if (promisifyFilter(key) && !(obj?.success || obj?.fail || obj?.complete)) { if (!args[0]) { args.unshift({ success: noop, fail: noop }) } From b07ce3ee7c9a69893e6118f6adfc40efa99fada4 Mon Sep 17 00:00:00 2001 From: anotherso1a <1181581742@qq.com> Date: Wed, 6 Mar 2024 14:48:19 +0800 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4promiify?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/api-proxy/src/common/js/promisify.js | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/packages/api-proxy/src/common/js/promisify.js b/packages/api-proxy/src/common/js/promisify.js index 5bb3159697..79da09887c 100644 --- a/packages/api-proxy/src/common/js/promisify.js +++ b/packages/api-proxy/src/common/js/promisify.js @@ -68,25 +68,20 @@ function promisify (listObj, whiteList, customBlackList) { } result[key] = function (...args) { - const obj = args[0] - if (promisifyFilter(key) && !(obj?.success || obj?.fail || obj?.complete)) { - if (!args[0]) { - args.unshift({ success: noop, fail: noop }) - } + // 不需要转换 or 用户已定义回调,则不处理 + if (!promisifyFilter(key) || ['success', 'fail', 'complete'].some(k => args[0] && args[0][k])) { + return listObj[key].apply(envObj, args) + } else { // 其他情况进行转换 + const obj = args[0] || { success: noop, fail: noop } + if (!args[0]) args.unshift(obj) let returned const promise = new Promise((resolve, reject) => { - obj.success = function (res) { - resolve(res) - } - obj.fail = function (e) { - reject(e) - } + obj.success = resolve + obj.fail = reject returned = listObj[key].apply(envObj, args) }) promise.__returned = returned return promise - } else { - return listObj[key].apply(envObj, args) } } }) From 210b0282b244166151d90304b0832f4761c49af7 Mon Sep 17 00:00:00 2001 From: anotherso1a <1181581742@qq.com> Date: Wed, 6 Mar 2024 15:06:32 +0800 Subject: [PATCH 3/4] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=92=8C=E8=B5=8B=E5=80=BC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/api-proxy/src/common/js/promisify.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/api-proxy/src/common/js/promisify.js b/packages/api-proxy/src/common/js/promisify.js index 79da09887c..40a1a83188 100644 --- a/packages/api-proxy/src/common/js/promisify.js +++ b/packages/api-proxy/src/common/js/promisify.js @@ -68,11 +68,11 @@ function promisify (listObj, whiteList, customBlackList) { } result[key] = function (...args) { + const obj = args[0] || {} // 不需要转换 or 用户已定义回调,则不处理 - if (!promisifyFilter(key) || ['success', 'fail', 'complete'].some(k => args[0] && args[0][k])) { + if (!promisifyFilter(key) || obj.success || obj.fail) { return listObj[key].apply(envObj, args) } else { // 其他情况进行转换 - const obj = args[0] || { success: noop, fail: noop } if (!args[0]) args.unshift(obj) let returned const promise = new Promise((resolve, reject) => { From 601b77767ecb09524bd0aac5ca093416291b0db4 Mon Sep 17 00:00:00 2001 From: anotherso1a <1181581742@qq.com> Date: Wed, 6 Mar 2024 15:08:11 +0800 Subject: [PATCH 4/4] style: lint fix --- packages/api-proxy/src/common/js/promisify.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api-proxy/src/common/js/promisify.js b/packages/api-proxy/src/common/js/promisify.js index 40a1a83188..31023d7dca 100644 --- a/packages/api-proxy/src/common/js/promisify.js +++ b/packages/api-proxy/src/common/js/promisify.js @@ -1,4 +1,4 @@ -import { getEnvObj, noop } from './utils' +import { getEnvObj } from './utils' const envObj = getEnvObj()