运行 每 "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
我正在编写一个 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