评论者:mikethompson
@Ghadi
为了清楚起见...您用引号称呼它为“错误”。这似乎几乎不是一个错误。
但对我来说,这是一个足够真实的“bug”,我不得不选择使用分叉版本,或者完全放弃使用core.async。
我需要(<! (timeout 0))表示0,或者尽可能接近0。我需要它按预期工作。当前的实现并没有为0(或尽可能接近0)提供服务,相反,它提供了与(<! (timeout 4))相同的结果,与0ms(或尽可能接近0)相比,4ms是“永远”。以4ms的频率,goloop每秒只能迭代250次。
任何一个有goloop监听爆发式websocket输出的人都会遇到这个问题。他们需要疯狂处理(没有4ms延迟)但是也要交回控制权,以便浏览器可以做它需要的事情,时不时地。当浏览器页面失去“焦点”,进入后台,JavaScript被限制,动画帧变慢等情况发生时,所有这些问题都会加剧。