Глубокое копирование локального объекта параметров перед передачей пользовательскому обработчику

This commit is contained in:
Mikhail Chechnev 2018-12-15 23:57:48 +03:00
parent 374d44d163
commit 108452284d
2 changed files with 14 additions and 10 deletions

View File

@ -122,10 +122,11 @@ class InQueue extends EventEmitter {
const fnBefore = getAppSrvFunction(prms.function.sAppSrvBefore); const fnBefore = getAppSrvFunction(prms.function.sAppSrvBefore);
let resBefore = null; let resBefore = null;
try { try {
prms.queue = q; let resBeforePrms = _.cloneDeep(prms);
prms.queue.blMsg = blMsg; resBeforePrms.queue = _.cloneDeep(q);
prms.queue.blResp = blResp; resBeforePrms.queue.blMsg = blMsg;
resBefore = await fnBefore(prms); resBeforePrms.queue.blResp = blResp;
resBefore = await fnBefore(resBeforePrms);
} catch (e) { } catch (e) {
throw new ServerError(SERR_APP_SERVER_BEFORE, e.message); throw new ServerError(SERR_APP_SERVER_BEFORE, e.message);
} }
@ -193,10 +194,11 @@ class InQueue extends EventEmitter {
const fnAfter = getAppSrvFunction(prms.function.sAppSrvAfter); const fnAfter = getAppSrvFunction(prms.function.sAppSrvAfter);
let resAfter = null; let resAfter = null;
try { try {
prms.queue = q; let resAfterPrms = _.cloneDeep(prms);
prms.queue.blMsg = blMsg; resAfterPrms.queue = _.cloneDeep(q);
prms.queue.blResp = blResp; resAfterPrms.queue.blMsg = blMsg;
resAfter = await fnAfter(prms); resAfterPrms.queue.blResp = blResp;
resAfter = await fnAfter(resAfterPrms);
} catch (e) { } catch (e) {
throw new ServerError(SERR_APP_SERVER_AFTER, e.message); throw new ServerError(SERR_APP_SERVER_AFTER, e.message);
} }

View File

@ -110,7 +110,8 @@ const appProcess = async prms => {
const fnBefore = getAppSrvFunction(prms.function.sAppSrvBefore); const fnBefore = getAppSrvFunction(prms.function.sAppSrvBefore);
let resBefore = null; let resBefore = null;
try { try {
resBefore = await fnBefore(prms); let resBeforePrms = _.cloneDeep(prms);
resBefore = await fnBefore(resBeforePrms);
} catch (e) { } catch (e) {
throw new ServerError(SERR_APP_SERVER_BEFORE, e.message); throw new ServerError(SERR_APP_SERVER_BEFORE, e.message);
} }
@ -140,7 +141,8 @@ const appProcess = async prms => {
const fnAfter = getAppSrvFunction(prms.function.sAppSrvAfter); const fnAfter = getAppSrvFunction(prms.function.sAppSrvAfter);
let resAfter = null; let resAfter = null;
try { try {
resAfter = await fnAfter(prms); let resAfterPrms = _.cloneDeep(prms);
resAfter = await fnAfter(resAfterPrms);
} catch (e) { } catch (e) {
throw new ServerError(SERR_APP_SERVER_AFTER, e.message); throw new ServerError(SERR_APP_SERVER_AFTER, e.message);
} }