由 mikethompson 创建的评论
@Ghadi
为了明确……您将这称为一个“错误”,几乎像它不是一个错误。
但对我来说,这是一个足够真实的“错误”,我必须要么使用分支,要么完全停止使用 core.async。
我需要 (<! (timeout 0)) 等于 0,或者尽可能接近 0。我需要它按宣传的那样工作。当前的实现没有达到 0(或尽可能接近 0),而是与 (<! (timeout 4)) 相同,而 4ms 相比 0ms(或接近 0)是永远的时间。每次迭代 4ms,goloop 只能每秒迭代 250 次。
任何监听爆发型 WebSocket 输出的 goloop 用户都会遇到这个问题。他们需要疯狂处理(没有 4ms 延迟),但同时也需要将控制权交还给浏览器,以便浏览器偶尔做它需要做的事情。当浏览器页面失去“焦点”,进入后台,JavaScript 被节流,动画帧变慢等问题都会加剧。