gpt4 book ai didi

javascript - 如何在mongodb数据库上存储setTimeout id?

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:59 26 4
gpt4 key购买 nike

我正在使用带有express的NodeJs,我想将setTimeout的id存储到数据库中,以便稍后我可以使用clearTimeout,我目前正在使用下面的代码

var timerId = setTimeout(function(){
console.log(id);
}, 100)

clearTimeout(timerId)

这段代码工作正常,但是timerId包含一个对象,这就是为什么我无法将它存储在数据库上是否有其他方法可以做到这一点,或者是否有方法可以转换MongoDB可接受的对象

这是我打印timerId时得到的对象

Timeout {
_called: false,
_idleTimeout: 5000,
_idlePrev:
TimersList {
_idleNext: [Circular],
_idlePrev:
Timeout {
_called: false,
_idleTimeout: 5000,
_idlePrev: [Circular],
_idleNext: [Circular],
_idleStart: 5876,
_onTimeout: [Function],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(asyncId)]: 252,
[Symbol(triggerAsyncId)]: 250 },
_unrefed: false,
msecs: 5000,
nextTick: false,
_timer: Timer { _list: [Circular] } },
_idleNext:
Timeout {
_called: false,
_idleTimeout: 5000,
_idlePrev: [Circular],
_idleNext:
TimersList {
_idleNext: [Circular],
_idlePrev: [Circular],
_unrefed: false,
msecs: 5000,
nextTick: false,
_timer: [Timer] },
_idleStart: 5876,
_onTimeout: [Function],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(asyncId)]: 252,
[Symbol(triggerAsyncId)]: 250 },
_idleStart: 6029,
_onTimeout: [Function],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(asyncId)]: 316,
[Symbol(triggerAsyncId)]: 0 }

我想要做什么,我有三个 API

  1. 加入请求
  2. 接受请求
  3. 拒绝请求

用户将加入请求发送到 join-request api,然后我在数据库上维护一个数组,其中包含所有加入请求,然后管理员接受并拒绝来自该日志的请求,但我想要的是,如果管理员不接受或拒绝该请求,则该请求在一段时间后会自动拒绝

为了做这件事,我在 join-request api 上运行 settimeout,如果管理员接受或拒绝该请求,我会清除该 settimeout,如果它不接受或拒绝该请求,那么我的 settimeout 会自动运行并拒绝该请求

但问题是,为了清除settimeout,我需要settimeout id,但我无法保存,请告诉我是否有任何方法可以实现此目的

提前致谢

最佳答案

用户将加入请求发送到 join-request api,然后我在数据库上维护一个数组,其中包含所有加入请求,然后管理员接受并拒绝来自该日志的请求,但我想要的是,如果管理员不接受或拒绝该请求,则该请求在一段时间后会自动拒绝

这里您只需在数据库中存储您的请求发生的时间戳。

为了做这件事,我在 join-request api 上运行 settimeout,如果管理员接受或拒绝该请求,我会清除该 settimeout,如果它不接受或拒绝该请求,那么我的 settimeout 会自动运行并拒绝该请求

那么您只需要管理该时间戳即可。

如果用户请求不得向管理员显示,则仅在一段时间内显示待处理的请求。

如果必须向执行请求的用户显示请求状态,请通过用户拒绝请求超出置信区间时的时间戳来管理请求状态(这也可以通过管理员完成。)

关于javascript - 如何在mongodb数据库上存储setTimeout id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52719322/

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