取消定时器


\Cancelling timers

setImmediate()setInterval()setTimeout() 方法各自返回表示调度的定时器的对象。这些可用于取消定时器并防止其触发。

\The setImmediate(), setInterval(), and setTimeout() methods each return objects that represent the scheduled timers. These can be used to cancel the timer and prevent it from triggering.

对于 setImmediate()setTimeout() 的 promise 化变体,可以使用 AbortController 来取消定时器。当取消时,返回的 Promise 将使用 'AbortError' 拒绝。

\For the promisified variants of setImmediate() and setTimeout(), an AbortController may be used to cancel the timer. When canceled, the returned Promises will be rejected with an 'AbortError'.

对于 setImmediate():

\For setImmediate():

const { setImmediate: setImmediatePromise } = require('node:timers/promises');
const ac = new AbortController();
const signal = ac.signal;
setImmediatePromise('foobar', { signal })
 .then(console.log)
 .catch((err) => {
 if (err.name === 'AbortError')
 console.error('The immediate was aborted');
 });
ac.abort(); 

对于 setTimeout():

\For setTimeout():

const { setTimeout: setTimeoutPromise } = require('node:timers/promises');
const ac = new AbortController();
const signal = ac.signal;
setTimeoutPromise(1000, 'foobar', { signal })
 .then(console.log)
 .catch((err) => {
 if (err.name === 'AbortError')
 console.error('The timeout was aborted');
 });
ac.abort(); 

AltStyle によって変換されたページ (->オリジナル) /