【发布时间】:2021-04-22 10:55:39
【问题描述】:
我是 NODE-JS 的新手,在我的 NODE-JS API 字段未正确重置,在下面,我使用属性来存储异步方法结果但在并发请求时遇到困难,有时字段未正确重置,所以程序的行为异常。
如何处理并发请求的属性?
let _companyId ;
let _companyName ;
let _deals={};
let _currentPipeline;
let _currentDealState;
let _validCounter = 0;
let _salesPipelineDeal = {};
let _csAccountDeal = {};
let _csDealColseDate;
app.post("/progression", async (req, res) => {
try{
_companyId = req.body.objectId;
_companyName = req.body.properties.name.value;
_deals= await getCompanyAssociatedDealsDetail(companyId);
let newMergeDeal = await createNewMergeDeal(newMergeDealObj);
await updatePreviousCSDeal(csAccountDeal.dealId);
_deals={};
_currentPipeline=null;
_currentDealState=null;
_validCounter = 0;
_salesPipelineDeal = {};
_csAccountDeal = {};
_csDealColseDate=null;
return res.status(200).send("new Merge Deal " + newMergeDeal.dealId);
}
catch(error)
{
}
});
【问题讨论】:
-
告诉我
getCompanyAssociatedDealsDetail、createNewMergeDeal、updatePreviousCSDeal,它们是基于承诺的吗? -
是的,他们是!都是异步方法。
-
你确定吗??因为这段代码是正确的
-
并发当我请求 API 时,它的行为出乎意料,一次或部署后第一个请求完美运行。
-
用户字段未重置,因此之前的值仍然存在并出现意外行为。可以指导我如何在并发请求的 api 上使用字段/属性。
标签: node.js concurrency async-await