Window:clearTimeout() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Window 接口的 clearTimeout() 方法取消了先前通过调用 Window.setTimeout() 建立的超时。

如果提供的参数未标识先前建立的动作,则此方法不执行任何操作。

语法

js
clearTimeout(timeoutID)

参数

timeoutID

要取消的超时标识符。此 ID 由相应的 setTimeout() 调用返回。

值得注意的是,setTimeout()setInterval() 使用的 ID 池是共享的,这意味着你可以在技术上互换使用 clearTimeout()clearInterval()。但是,为了清晰起见,你应该避免这样做。

返回值

无(undefined)。

示例

在网页上下文中运行下面的脚本,并点击页面一次。你会看到一条消息在一秒钟后弹出。如果你在一秒钟内多次点击页面,则警报只出现一次。

js
const alarm = {
  remind(message) {
    alert(message);
    this.timeoutID = undefined;
  },

  setup() {
    if (typeof this.timeoutID === "number") {
      this.cancel();
    }

    this.timeoutID = setTimeout(
      (msg) => {
        this.remind(msg);
      },
      1000,
      "Wake up!",
    );
  },

  cancel() {
    clearTimeout(this.timeoutID);
  },
};
window.addEventListener("click", () => alarm.setup());

注意

将无效 ID 传递给 clearTimeout() 会静默地不执行任何操作;不会抛出异常。

规范

规范
HTML
# dom-cleartimeout-dev

浏览器兼容性

另见