如何在javascript中删除函数的对象?

时间:2019-04-18 12:39:17

标签: javascript

例如,变量x是函数my的对象。我只希望该函数运行一段时间,但我不知道如何停止它。

function my (num){
  while (1) // means this process is an infinite loop
  {
    console.log(1);
  }
}

var x = new my();

在不修改函数my(因为origin函数非常复杂)的前提下,如何停止该函数或如何删除该对象?

1 个答案:

答案 0 :(得分:4)

不能。 JS中没有任何类型的并发,因此您不能同时停止其他操作。您必须修改阻止代码以支持协同并发取消。

 const tick = () => new Promise(res => setTimeout(res, 0));

 let kill;

 function my (num){
  (async function() {
    while (!kill) {
      console.log(1);
      await tick();
     }
  })();
}

var x = new my();

setTimeout(() => kill = true, 10000);