欢迎!请参阅 关于 页面以获取更多关于如何使用本站的信息。
为什么不支持 cljs 中的 <!!,有没有合理的理由?如果没有,难道不支持 <!! 不是一个很好的主意吗?
<!!
core.async 中的 <!! 操作是阻塞的,并且会阻塞当前线程。在单线程 JavaScript 中,这不是可行的。
您可以使用poll!和offer!代替,它们是非阻塞的等效。只是记住,它们不会“等待”值变得可用,因此您需要自己持续轮询,或者确保有一个值。
就像其他人说的那样,<!!在JavaScript的上下文中没有意义,因为您永远不会希望阻塞主线程,而“等待”操作需要这里的线程。
还存在着take!,如果您不想自己实现轮询,它会为您做得更高效,并在值可用时调用您。