运行 每 "x" 秒编码一次,没有 setInterval

Run code every "x" seconds without setInterval

我正在编写一个 Cinnamon 面板小程序(在 JavaScript 中),它每 20-120 秒轮询一次设置命令以获取信息,由用户设置。但问题是 setInterval 不存在于 Cinnamon 小程序使用的 JavaScript 的子集(?)中。我试着用这个:

function sleep(milliseconds) {
    const date = Date.now();
    let currentDate = null;
    do {
      currentDate = Date.now();
    } while (currentDate - date < milliseconds);
}

这不起作用,因为它会在 milliseconds 期间锁定整个面板,但 运行ning 时除外。

while (true) {
    sleep(seconds*1000)
    this.set_applet_label(cmd_output)
}

这是我正在使用的循环代码。 我需要的是某种非阻塞方式 运行 在 JavaScript 中每 X 秒编码一次。

由@blex 发现 通过导入Mainloop,可以得到一个timeout_add_seconds函数:https://github.com/axos88/cinnamon-countdown-timer/blob/master/applet.js#L213