看起来可以 straightforwardly 利用 pulsar 的 core.async 实现中的工作(pulsar 的作者似乎实际上在参与 Loom 的开发)。
pulsar.async
看起来只需将 pulsar 的纤维 API 替换为遗留 Clojure 代码的直接端口,或者围绕 Fiber 类及其友邻创建一个新的小 shiww。
虽然保持与传统 core.async 的 API 兼容性是期望的,所以代码在 clj/cljs 之间可迁移。我认为这主要为您提供将任意函数/闭包放在 go-block 中以及重新启用常见的惯用语模式的能力,如 for 或其他利用局部创建的闭包来实现的功能。
似乎这会得到一个功能超集(例如,在 JVM 上的 core.async 可以做更多),这意味着编写可移植代码的人必须注意可能的不兼容性。
考虑到多年来几乎没有观察到的大声反对,我很好奇目标市场将是谁。