nodejs中的一致性

问题描述 投票:0回答:2

假设我有一个全局键值对,对其进行的操作返回一个promise(实际上我正在使用Redis,并且它存储剩余的硬币值。

如果剩余数量大于0,则路由/路径使用请求中的数字减少硬币。

最初的值为10。现在,如果两个请求同时出现,分别为10和9,那么它们都可以读取长度为10的数据,并且出现不一致的地方吗?

我知道的是,promise具有回调,并且当第一个对getQuantity()的请求发出时,事件循环可以处理下一个请求,然后此请求可以读取数量为10的数字,这可能导致不一致。

app.get("/path",(req,res)=>{

 const decrementBy=req.value;
 const quantity=await obj.getQuantity(); 
 if(quantity-decrementBy>=0){
  await setQuantity(quantity-decrementBy);
 }
 res.send();

})
node.js es6-promise consistency
2个回答
1
投票
异步I / O意味着并行等待,而不是并行代码执行。

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.