我想在javascript / processing.js中编写一个sleep()
函数。即:一个中断程序流程的函数,无论多少秒。
显然如何使用"忙碌等待",但这往往会减慢浏览器速度并使事情无法使用
我知道"睡觉"是不是很好的JavaScript。我希望这个功能用于教学目的(帮助孩子理解他们的代码),而不是用于生产用途。
因为它的意思是说教,所以显式回调太复杂了。调用函数应该像bash或php一样简单 - 但是,我们可以使用最神秘的东西,只要它们保持隐藏在sleep函数内(包括processing.js技巧)
< / LI>我知道问题What is the JavaScript version of sleep()?,但仍然希望有一个黑客可以停止处理.js(或者可能是一个真正的javascript解决方案,但可能是不明智的)
< / LI>这个函数应该在draw()循环之外工作 - 如果它也在内部工作,那就是奖金
如果相关,则此功能适用于可汗学院
答案 0 :(得分:0)
显然如何使用&#34;忙碌等待&#34;,但这往往会减慢浏览器的速度并使事情无法使用
sleep()
函数也会导致此行为,因为JavaScript是单线程的。
因为它意味着要说教,所以明确的回调太复杂了。
您已经回答了自己的问题:在没有使用回调或忙碌等待的情况下,无法在JavaScript中执行sleep()
功能。
您可能会考虑使用Java模式来显示sleep()
,但听起来忙碌的等待是可行的方法。
在我看来,即使你能找到一个能够入睡的黑客,这对孩子来说可能不是一个很好的例子,因为他们的代码永远不会那么做。他们更有可能尝试渲染太多对象。如果您试图证明在draw()
函数内部执行过多操作会很糟糕,那么为什么不让它们在draw()
函数内部执行太多操作?教他们关于for循环,然后让他们看看当他们绘制100个矩形,或1000或1,000,000时会发生什么!