评论由:mikethompson
@Ghadi
为了清晰起见 ... 你将这件事称为“bug”,用了双引号。几乎就像它不是bug一样。
但对我来说,这确实是一个足够真实的“bug”,我必须要么使用分支重构,要么完全放弃使用core.async。
我需要 (<! (timeout 0)) 表示0,或者尽可能接近0。我需要它像宣传的那样工作。当前的实现并不能实现0(或者尽可能接近0),而是给出与 (<! (timeout 4)) 相同的结果,4毫秒与0毫秒(或者尽可能接近0)相比是“永恒”。每次循环4毫秒,goloop只能每秒迭代250次。
任何使用goloop监听突发websocket输出的开发人员都会遇到这个问题。他们需要疯狂地处理数据(没有4毫秒的延迟),但同时也需要将控制权交回浏览器,这样浏览器就可以偶尔做它需要做的事情。当浏览器页面失去“焦点”,进入后台,javascript被限制,动画帧减速等情况发生时,所有这些问题都会加剧。