评论由:mikethompson 提出
@Ghadi
为了澄清……你用引号提到这被称之为“错误”。这似乎几乎不是在称其为错误。
然而对我来说,这确实是一个足够真实的“bug”,我必须选择与分叉版本一起工作或者完全放弃使用core.async。
我需要一个(<! (timeout 0))能够表示0,或者尽可能接近0。我需要它按照广告中所描述的方式工作。当前的实现并没有达到0(或尽可能接近0),而是与(<! (timeout 4))相同,而4毫秒相对于0毫秒(或接近它)简直就是永恒。每次循环4毫秒,goloop每秒只能迭代250次。
任何使用goloop监听爆发式WebSocket输出的都会遇到这个问题。他们需要像疯狂一样处理(没有4毫秒的延迟),但同时也需要交回控制权,这样浏览器就可以做一些它需要的事情,每隔一段时间执行一次。当浏览器页面失去“焦点”,进入后台,js被节流,动画帧变慢等,所有这些问题都会加剧。