我们可以使用 _destroyed 属性 of Node.js 计时器吗?
Can we use the _destroyed property of Node.js timers?
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 不稳定等)?或者只要我们避免从外面设置就可以使用它吗?
我建议不要使用它。
正如您所说,在 JS 中以下划线开头的属性是将属性标记为私有的历史方法,并且在没有记录的情况下会被删除或更改行为,因此不能保证它会按预期工作。
另外,._destroyed
不是Timeout
class的a documented property,所以也支持不使用的建议。
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 不稳定等)?或者只要我们避免从外面设置就可以使用它吗?
我建议不要使用它。
正如您所说,在 JS 中以下划线开头的属性是将属性标记为私有的历史方法,并且在没有记录的情况下会被删除或更改行为,因此不能保证它会按预期工作。
另外,._destroyed
不是Timeout
class的a documented property,所以也支持不使用的建议。