【问题标题】:Can we use the _destroyed property of Node.js timers?我们可以使用 Node.js 计时器的 _destroyed 属性吗?
【发布时间】:2022-01-01 03:00:42
【问题描述】:

setTimeout 在 Node.js 中创建的计时器有一个 _destroyed 属性,可以很好地用于诊断(只读)。

E. G。在 REPL 中它是这样工作的:

> let timer = setTimeout(() => console.log('elapsed'), 20000); console.log(timer._destroyed)
false
undefined
> elapsed
> timer._destroyed
true

但它是以下划线开头的属性。

是否应该根本不从对象外部使用_destroyed(因为 API 不稳定等)?或者只要我们避免从外部设置它就可以使用它?

【问题讨论】:

    标签: node.js settimeout


    【解决方案1】:

    我建议不要使用它。

    正如您所说,在 JS 中以下划线开头的属性是将属性标记为私有的历史方式,并且可以在没有记录的情况下删除或更改行为,因此不能保证它会按预期工作。

    另外,._destroyed 不是Timeout 类的a documented property,所以也支持不使用的建议。

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多