欢迎!请参阅 关于 页面以获取更多此功能的信息。
为什么 `<!!` 在 cljs 中不支持?如果没有充分理由,支持 `<!!` 不好吗?
<!!
core.async 的 `<!!` 操作是阻塞的,并且会阻塞当前线程。在单线程 JavaScript 中这是不可行的。
<!` 限制了,因为 go 块返回的是一个通道而不是值。
您可以使用 poll! 和 offer!,它们是非阻塞的等价选项。请记住,它们不会“等待”值可用,因此您需要自己轮询,或确保必须有一个值。
像其他人说的那样,<!!在 JavaScript 的上下文中没有意义,因为您永远不想阻塞主线程,而且进行“等待”操作也需要阻塞。
还存在 take!,如果您不想自己实现轮询,它将为您完成,且当值可用时会调用您。