如何防止javascript代码执行?
我遇到了一个简单而令人困惑的问题: 如何阻止执行一段javascript代码 在我的游戏中,我有一个带有延迟的函数,因为该函数执行一个死亡序列。 由于延迟,函数需要5秒钟才能完成执行 我希望此函数在继续执行其余代码之前完全完成执行。但是当函数仍在执行时,会执行擦除画布的剩余代码 如何停止此操作?黑客解决方案: 让死亡序列在开始时将全局变量设置为true,在结束时将其设置为false。在渲染循环函数的开头,检查该全局变量并返回;当这是真的如何防止javascript代码执行?,javascript,html,loops,html5-canvas,Javascript,Html,Loops,Html5 Canvas,我遇到了一个简单而令人困惑的问题: 如何阻止执行一段javascript代码 在我的游戏中,我有一个带有延迟的函数,因为该函数执行一个死亡序列。 由于延迟,函数需要5秒钟才能完成执行 我希望此函数在继续执行其余代码之前完全完成执行。但是当函数仍在执行时,会执行擦除画布的剩余代码 如何停止此操作?黑客解决方案: 让死亡序列在开始时将全局变量设置为true,在结束时将其设置为false。在渲染循环函数的开头,检查该全局变量并返回;当这是真的 一个更干净的解决方案是在逻辑循环和渲染循环中都有适当的状态
一个更干净的解决方案是在逻辑循环和渲染循环中都有适当的状态处理。我还没有看到您的代码,但听起来您可能想使用回调
function deathSequence(callback) {
...
function step() {
lots_of_stuff;
...
if(sequence_done) {
callback();
} else {
setTimeout(step, 100);
}
}
step();
...
}
function game() {
...
if(dead) {
deathSequence(function() {
// Canvas won't get wiped until death
// sequence is over
wipe canvas;
})
}
...
}
查看使用回调是否存在死亡序列中的最后一条语句无法调用清除画布的函数的原因?