3
我知道你们都会像“使用计时器!但让我解释一下。 我正在做类似宏的事情,我需要执行一些特定延迟的函数。我知道它可以用定时器完成,但代码如何用50个定时器和50个回调来完成呢?随着睡眠,它可以在一个功能都很好。由于网络工作者在单独的线程上运行,因此不存在冻结问题。Web Worker睡眠
我只知道使睡眠没有吃CPU的2种方法:
- 做一个同步XHR请求到休眠由GET给出x秒数额特别的后端。虽然这起作用,但真的很不方便,并且依赖于ping到服务器。
- 使用生成函数(yield)并发送消息给启动定时器的主线程。当定时器执行时,消息被发送回工作者继续执行。这是一个非常好的解决方案,但它只在Firefox中提供,据我所知。 Chrome不支持生成器功能。
是否有其他方式实现睡眠功能?
我不知道这是属于StackOverflow的,我打算申请迁移到[Programmers.StackExchange.com](http://Programmers.StackExchange.com),看看版主想什么。 – Malachi
Chrome支持生成器。通过'chrome:// flags /'启用Harmony支持,然后你可以使用'var generator = function *(){/ * do something */yield 1;/*做其他事情*/yield 2;/*完成你的东西* /}; var g = generator(); g.next();/*当你准备好了... */g.next(); //等等 –