由:mikethompson 评论
@Ghadi
为了明确起见...你用引号将此称为“错误”。几乎好像它不是一个错误。
但我认为这是一个足够真实的“错误”,我必须要么用分支处理,要么完全改用 core.async。
我需要(<! (timeout 0))意味着0,或者尽可能接近0。我需要它按照宣传的那样工作。当前实现没有达到0(或尽可能接近0),而是得到(<! (timeout 4))和4ms与0ms(或接近它)相比是永恒的。以每个循环4ms,goloop每秒只能迭代250次。
任何有goloop监听爆发式WebSocket输出的人都会有这个问题。他们需要疯狂处理(没有4ms延迟),但同时也需要交回控制让浏览器做它需要的事情,偶尔一次。当浏览器页面失去“焦点”,进入后台,js被节流、动画帧减慢等时,所有这些问题都会加剧。