gpt4 book ai didi

javascript - 如何在 NodeJS/Javascript 中进行长轮询?

转载 作者:行者123 更新时间:2023-12-03 11:29:51 24 4
gpt4 key购买 nike

需要明确的是,我对长轮询的理解是,您按时间间隔向服务器发出请求。

我正在尝试实现一个比特币购买系统,该系统检查区 block 链以了解我的钱包余额的变化。我知道有 websockets 可以做到这一点,但我必须等待 1 个确认才能收到更新,而且 REST API 提供了更大的灵 active ,所以我宁愿每 5 秒左右向服务器发出一个请求,并检查每个响应我的平衡发生变化,然后从那里开始。

问题是我似乎不知道如何在 NodeJS 中做到这一点。从功能上讲,这就是我想象的代码。

Get current balance (make request)
Get current balance again (make request)
Check if there is a difference
**If not**
wait 5 seconds
Get current balance
Check for difference
repeat till different (or till timeout or something)
If different
do some functions and stop checking balance.

我一直在尝试执行每一步,但我一直在弄清楚如何创建一个检查余额的循环,并在余额发生变化时停止循环。

我最初的想法是使用 Promise 和一些 for 循环,但这并没有实现。

所以现在我请求你的帮助,我该怎么办?

最佳答案

实现此目的的一种方法是设置一个 setInterval 计时器以每 x 秒启动一个请求。通过在响应后设置一些逻辑,您可以选择取消引用计时器并触发另一个函数。这是 snippet 。您会注意到我设置了一个变量来引用计时器,然后通过将其设置为 null 来取消引用它,然后 GC 就足够智能来释放它。您还可以使用“clearTimeout”函数,这可能是更好的方法。

关于javascript - 如何在 NodeJS/Javascript 中进行长轮询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com