首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >椎板撤消虹吸- Clojure

椎板撤消虹吸- Clojure
EN

Stack Overflow用户
提问于 2012-10-04 05:15:44
回答 2查看 429关注 0票数 4

我正在使用Lamina实现一个基本的发布订阅模式。

当客户端订阅一个主题时,我会为它创建一个新的channel (如果它还不存在),然后将其siphon到客户端的channel。然而,我不知道如何逆转这一点,让客户取消订阅。我搜索了文档,用谷歌搜索了一下,但什么也没找到。

如何撤消siphon所做的操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 14:45:13

通常,你会做一个可以关闭的桥通道,所以链接是:

主题通道->桥通道->客户端通道

在0.5.0中,这很容易,因为siphon是可变的:

代码语言:javascript
复制
(defn cancellable-siphon [src dst]
   (let [bridge (channel)]
     (siphon src bridge dst)
     #(close bridge)))
票数 1
EN

Stack Overflow用户

发布于 2012-10-04 08:34:05

您可以在虹吸管上方fork上游通道,然后将下游通道接地,或者如果您的图形允许,您可以只关闭不再需要从上游通道虹吸的通道。

ps:稍后我会试着添加一个例子……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12717046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档