61得票5回答
比较core.async和函数响应式编程(+Rx)

当我比较Clojure的core.async和所谓的响应式扩展(Rx)以及FRP时,我有些困惑。它们似乎解决了相似的异步问题,我想知道它们的主要区别,并在什么情况下优先使用其中之一。请问能否给出解释? 编辑:为了鼓励更深入的回答,我想让问题更具体: Core.async允许我编写看起来同...

42得票6回答
核心.async是否违背了Clojure的原则?

我见过许多Clojure程序员对新的core.async库充满热情,虽然它看起来非常有趣,但我很难看出它如何符合Clojure原则,因此我有以下问题: 它在任何地方都使用可变状态,正如函数名称所示,带有感叹号,例如alt!、put!、>!等。如果您从通道中放置或取出一个值,则该通道会就地修...

37得票1回答
我能否使用http-kit和core.async创建完全非阻塞的后端应用程序?

我想知道是否可能使用http-kit组合一个完全非阻塞的Clojure后端Web应用程序。 (实际上,任何兼容Ring的http服务器都可以,我提到http-kit是因为它声称具有事件驱动的、非阻塞模型)。 编辑:简述 这个问题是我对非阻塞/异步/事件驱动系统本质的一些误解的症状。如...

27得票1回答
clojurescript中的core.async有什么优势?

人们都在谈论 core.async 有多么强大,以及它如何改进 ClojureScript 的事件处理。我一直在跟随ClojureScript 101 教程,但是从这些代码示例中并没有看到明显的优势。我错过了什么吗? 为什么在这里使用 core.async 更好?(defn listen [...

26得票1回答
在Clojure(core.async)中,alts和alt有什么区别?

我弄不清楚以下两者之间的区别:alts! 以及alt! 在Clojure的core.async中。

20得票1回答
ClojureScript、Om和Core.async:如何正确处理事件

我已经研究了使用Om进行富客户端网站设计。这也是我第一次使用core.async。在阅读教程https://github.com/swannodette/om/wiki/Basic-Tutorial时,我看到了使用core.async通道来处理删除操作的用法(与在处理程序中完成所有工作相反)。...

18得票4回答
在Clojure中限制核心异步通道的速率

我正在使用带有 core.async 的 Clojure,需要在一个通道中对处理的消息数设置速率限制。 具体而言,我想要做到以下几点: 定义速率限制,例如每秒 1,000 条消息 只要消息数量低于速率限制,可以正常(快速)处理消息 如果超过速率限制,则需要进行某种合理的替代处理方式(例如...

17得票3回答
如何对Clojure核心异步Go宏进行单元测试?

我正在尝试在使用core.async go宏时编写单元测试。以下是一个朴素的测试编写方式,但似乎go块内的代码没有被执行。(ns app.core-test (:require [clojure.test :refer :all] [clojure.core.asy...

15得票1回答
Clojure如何停止所有go块或关闭core.async中的所有通道

往往当我在repl中使用core.async时,一个go块会跑飞,因为我丢失了用于停止它的通道,原因是我重新加载了命名空间。比如,如果我从repl中运行下面的代码:(go (when (not= c (second (async/alts! [c (async/timeout 1000)]))...

14得票4回答
何时在Clojure中使用core.async?

什么情况下应该使用Clojure的core.async库,需要哪种类型的应用程序使用这种异步编程方式? Clojure提供了4种基本的可变模型,如refs、agents、atoms和thread locals/vars。这些可变引用是否可以以任何方式提供core.async提供的便利性呢? ...