问题标签 [pending-transition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
581 浏览

php - 在 Woo 中,我需要在创建订单时减少实际库存水平,并且在订单取消之前不要减少

我需要一个产品库存在订单创建时立即减少,除非订单被取消,否则它不应该增加(它也不应该在付款成功或任何其他切换后第二次减少)。

我的问题是我想使用我的店面开具发票并收集本地服务工作。我正在使用稍后付款发票网关,该网关将订单放入处理中,并且在此状态下 woo 不会减少库存,因此我刚售出的数量仍列为我的产品/目录页面中的可用数量。但是,我发现当客户添加这些无形库存数量时,他们会收到一条消息,例如无法将库存不足添加到购物车,即使目录页面显示其可用。

我无法弄清楚这将起到什么作用,因为数量已经在付款待定订单中说明,为什么它会显示在产品/目录页面中。我在 3 个搜索引擎中找到了我能找到的每一篇文章,试图找到类似的情况并给出答案,但运气不佳。

我找到了这个:

在一篇有类似问题并试图实施但我看不到效果的帖子中。

然后我发现了这个:

但它允许我将订单置于暂停状态,在该状态下 woo 确实拉货,并且允许从该状态进行付款。最后我认为这很好,但是当我开始另一轮测试时,我发现如果我创建一个订单并购买某个产品的所有剩余库存,它会 A:正确地从库存中拉出库存,使产品库存为零,然后B: 当我用应付链接向客户发送电子邮件发票时。

它告诉他们,由于商品缺货,因此无法支付订单。令人沮丧,因为它可以很好地处理库存充足的订单;订单完成后,我留下了适当的库存水平。

看来 woo 需要手头有额外的库存才能让客户付款……或者至少在我看来是这样。

关于如何实现目标的任何想法?提前致谢。

更新-

所以我将第一个代码更改为:

起初我认为它不起作用,因为在创建订单并将其直接降至待付款状态时库存水平没有改变,但是在将状态切换为暂停后,它减少了库存,当我将其切换回来时待定状态,库存仍然减少,付款成功后,它不会进一步减少库存,因此考虑到我是版主,这似乎至少可行,我会知道该怎么做....但是有更好的解决方案可以让我创建订单并将其直接放入待处理状态并立即减少库存,而无需来回切换状态。

-更多信息订单说明: 图片上方的所有内容仅与付款有关

因此,它似乎正在迅速增加,然后将状态更改为待处理的库存减少。再次感谢任何帮助。

0 投票
0 回答
57 浏览

node.js - Node Express 异步数据库请求:显示待处理消息?

是否可以在使用 Node.js 和 Express.js 从某些 API 获取数据库请求时显示状态消息?数据库请求需要几分钟......我想在浏览器中显示一条状态消息,如“待处理的请求..”,只要它需要获得结果......这可能以某种方式吗?我知道请求要么完成要么失败,我可能需要一些状态对象或浏览器中的某种回调来做到这一点,但我不知道如何..

0 投票
2 回答
1545 浏览

javascript - Javascript:如何检查异步操作是否仍在挂起/进行中?

我想知道是否有可能以某种方式检查 Javascript 中的异步操作是否仍处于挂起状态。因为我正在对调用特定 URL 进行数据库请求...虽然 db 调用仍在进行中,但我想停止任何其他传入的 db-calls(这意味着,如果 db-request 仍处于挂起状态,则停止对该 URL 的任何进一步调用)。这有可能吗?

因为数据库调用最多需要几分钟,而且我不想在第一个数据库调用仍在进行时启动另一个数据库调用。问题是,我不知道如何检查调用是否已经开始并且仍在正在进行中,因为响​​应仅在进程已经完成时的 .then() 子句之后出现。

这是我的数据库调用函数:

这是我的 URL/Route Call 函数,带有 express:

0 投票
0 回答
268 浏览

ethereum - 智能合约部署到主网挂起状态

我有自己的 Ehereum cient 节点,运行 OpenEthereum 3.0.1。我正在使用 Truffle Suite 将我的智能合约部署到 MainNet,使用我的节点作为 RPC_URL。Truffle 迁移命令发出以下命令:

1_initial_migration.js

部署“迁移”


块号:10288818 块时间戳:1592471208 帐户:0xmyaccountnumber 余额:0.1797474439 使用的气体:210237 (0x3353d) 气体价格:2 gwei 发送的值:0 ETH 总成本:0.000420474 ETH


总成本:0.000420474 ETH

2_deploy_contracts.js

部署“AuthentoFile”


块号:10288820 块时间戳:1592471211 账户:0xmyAcountNumber 余额:0.1769681859 使用的气体:1362266 (0x14c95a) 气体价格:2 gwei 发送值:0 ETH 总成本:0.002724532 ETH


总成本:0.002724532 ETH

概括

总部署:2 最终成本:0.003145006 ETH

开始迁移...

网络名称:'mainnet' 网络 ID:1 块气体限制:9990236 (0x98705c)

1_initial_migration.js

部署“迁移”


交易哈希:0x77eac6bee9baeb315e7e52d31d13a9ab4241676c2ec2b4a5e7cf2071281ffe1a

错误: * 部署失败 *

“迁移”——交易未在 50 个区块内开采,请确保您的交易已正确发送。请注意,它可能仍被开采!

这是我第二次尝试部署。我有 2 笔合同部署交易仍在 EtherScan.io 上等待处理。tx 哈希是

0x77eac6bee9baeb315e7e52d31d13a9ab4241676c2ec2b4a5e7cf2071281ffe1a 和 0xc0a28527f1fcebc0bdf9ae18479831eaf026b350420a3134bcd14b44f520b812

我的 Open Ethereum 节点也将这些显示为待处理的交易。

这些交易会被挖掘吗?如果没有,是否有办法“取消”这些待处理的交易?

任何见解或帮助将不胜感激!