Processing.js sleep

时间:2015-09-15 23:52:11

标签: javascript processing.js

我想在javascript / processing.js中编写一个sleep()函数。即:一个中断程序流程的函数,无论多少秒。

  1. 显然如何使用"忙碌等待",但这往往会减慢浏览器速度并使事情无法使用

  2. 我知道"睡觉"是不是很好的JavaScript。我希望这个功能用于教学目的(帮助孩子理解他们的代码),而不是用于生产用途。

  3. 因为它的意思是说教,所以显式回调太复杂了。调用函数应该像bash或php一样简单 - 但是,我们可以使用最神秘的东西,只要它们保持隐藏在sleep函数内(包括processing.js技巧)

    < / LI>
  4. 我知道问题What is the JavaScript version of sleep()?,但仍然希望有一个黑客可以停止处理.js(或者可能是一个真正的javascript解决方案,但可能是不明智的)

    < / LI>
  5. 这个函数应该在draw()循环之外工作 - 如果它也在内部工作,那就是奖金

  6. 如果相关,则此功能适用于可汗学院

1 个答案:

答案 0 :(得分:0)

  

显然如何使用&#34;忙碌等待&#34;,但这往往会减慢浏览器的速度并使事情无法使用

sleep()函数也会导致此行为,因为JavaScript是单线程的。

  

因为它意味着要说教,所以明确的回调太复杂了。

您已经回答了自己的问题:在没有使用回调或忙碌等待的情况下,无法在JavaScript中执行sleep()功能。

您可能会考虑使用Java模式来显示sleep(),但听起来忙碌的等待是可行的方法。

在我看来,即使你能找到一个能够入睡的黑客,这对孩子来说可能不是一个很好的例子,因为他们的代码永远不会那么做。他们更有可能尝试渲染太多对象。如果您试图证明在draw()函数内部执行过多操作会很糟糕,那么为什么不让它们在draw()函数内部执行太多操作?教他们关于for循环,然后让他们看看当他们绘制100个矩形,或1000或1,000,000时会发生什么!