例如,变量x是函数my
的对象。我只希望该函数运行一段时间,但我不知道如何停止它。
function my (num){
while (1) // means this process is an infinite loop
{
console.log(1);
}
}
var x = new my();
在不修改函数my(因为origin函数非常复杂)的前提下,如何停止该函数或如何删除该对象?
答案 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);