while 循环中的 Javascript eventListener

Javascript eventListener inside while loop

提问人:Mat52 提问时间:1/10/2022 最后编辑:freedomn-mMat52 更新时间:1/10/2022 访问量:187

问:

我试图弄清楚是否可以在 Javascript 中将 eventListener 实现到 while 循环中,该循环可以将值传递给循环中的变量。我需要它来取消无限循环,该循环应连续向TCP套接字(看门狗)发送数据帧。当插座闭合时,回路应结束。为此,我使用网络工作者,但它不起作用。

代码如下:

// WebWorker with infinite loop

var check = "true";
let i = 0;
let j = 0;
var returnedEvent;

while (check) {

  self.postMessage(i);

  onmessage = (event) => {
    returnedEvent = event.data;
    console.log("worker: " + event.data);
    let check = returnedEvent;
  }

  sleep(100);
}

console.log("loop completed");

function sleep(delay) {
  var start = new Date().getTime();
  while (new Date().getTime() < start + delay);
}

javascript php 循环 while-loop 事件侦听器

评论

5赞 epascarello 1/10/2022
永远不要那样睡觉......
0赞 freedomn-m 1/10/2022
use 和 .不是你的问题的直接答案(或者也许很难说),这是一个关于无限循环的问题: javascript 无限循环与延迟 如果你保留返回,你可以把它传给以后setIntervalclearIntervalvar t = setInterval(...)clearInterval(t);
0赞 freedomn-m 1/10/2022
您还只想设置单个事件处理程序。像这样的东西,但由于你的代码是更大代码的一部分,同样,很难说,所以不是一个完整的答案。
1赞 Thomas 1/10/2022
var check = "true";另一种状态是什么?因为不会结束循环; 是一个真实的价值观while("false")"false"
0赞 Mat52 1/11/2022
你是对的。真实值应为“var check = true;”,而相应的虚假值为“returnedEvent = false;”,这将结束循环。

答: 暂无答案