jga*_*ato 2 javascript amqp node.js
我正在 amqp.node (amqplib) 之上开发一个新库,基本上我们不需要所有的 RabbitMQ 功能。所以,我正在创建一个简单的库,专门为我们的项目提供便利。
这个新库将返回 Promises。因此,例如,订阅队列将返回关于 Ok 和 Error 的 Promise。但是,我应该如何处理以后的问题?断开连接、重新连接、队列删除等?这将在承诺得到解决后发生。我的新班级应该发出他自己的错误吗?这是处理 Promise 的好方法吗?
Promise 是一次性设备。因此,它们只是一次性状态转换的正确设计工具。一旦它们被解决或拒绝,它们就会被锁定在那个状态。在那之后,您要么必须为新操作提供新的承诺,要么承诺不是真正正确的方案,而您宁愿拥有事件通知之类的东西。
因此,如果您可以断开连接,然后重新连接,然后断开连接等等……您要么必须为每个状态转换创建一个新的承诺,要么承诺并不是最简单的实现,而您真正想要的是只是能够将侦听器订阅到各种事件(从 eventEmitter 派生并发出其他人可以收听的有趣事件)。
我并没有声称完全了解您要构建的内容,但是您描述的几个部分听起来像是您希望为大部分项目提供更多事件通知方案而不是承诺。
仅供参考,这里有一些关于不同通知方案的有趣文章:
Event Emitter、Pub Sub 或 Deferred Promises ……你应该选择哪个?
归档时间: |
|
查看次数: |
834 次 |
最近记录: |