欢迎!有关如何使用本站的信息,请参阅 关于 页面。
为什么不支持 cljs 中的 <!!?如果没有充分的理由,不支持 <!! 不是一个很好的改进吗?
<!!
core.async 的 <!! 操作是阻塞的,并会阻止当前线程。在单线程的 JavaScript 中,这是不可取的。
您可以使用 poll! 和 offer!,它们是非阻塞的等效方案。请记住,它们不会“等待”值的可用性,所以您需要自己持续轮询,或者确保值应该存在。
像其他人说的,<!! 在 JavaScript 的上下文中没有意义,因为您永远不会想要阻塞主线程,而执行“等待”操作通常会需要这样做。
还存在 take!,如果您不希望自己实现轮询,它会为您自动完成(效率更高),并在值可用时通过它调用您。