【问题标题】:Notify when pub/sub done发布/订阅完成时通知
【发布时间】:2015-08-23 07:47:51
【问题描述】:

我有用户类和画廊类。每个画廊都与一个用户相关。 在画廊课上,我想做这样的事情:

users.on('remove', function(userId) {
   return gallery.removeByUser(userId); // promise!
});

在用户中我会写如下内容:

function removeUser(id) {
   var result = users.emit('remove', id);
   // I WANT result TO BE A PROMISE THAT RESOLVE WHEN ALL OF THE LISTENERS
   // DONE, IT IS POSSIBLE?
}

是否可以等待所有侦听器的 Promise 完成?

我确定可以建立自己的 pub/sub.. 我正在寻找现有的 图书馆。 (我需要在当前会话中支持它的发布/订阅, 我不需要它来支持多个实例)

谢谢!

【问题讨论】:

  • 我认为你可以从 jquery.js 中提取延迟对象,它可能几乎是独立的:api.jquery.com/category/deferred-object
  • 我想使用 pub/sub,而不是仅延迟...我如何知道所有使用 jquery 完成的侦听器何时延迟?
  • 1. pub/sub 是 Promise 的基础。 2.阅读文档OO'
  • 抱歉混淆了...我知道 pub/sub 是 Promise 的基础。但是,在这种情况下,承诺是有限的。我只是想知道是否有类似的解决方案: object.publish('someEvent').then(function() { LISTENERS_DONE! });

标签: javascript node.js publish-subscribe


【解决方案1】:

如果你想要一个简单的 pub/sub,我推荐使用 Redis。 跟踪主题中的客户,并在删除时将其删除。 然后,您可以编写一些逻辑,例如当主题没有更多订阅者时。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 2023-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多