gpt4 book ai didi

javascript - Pub/Sub 中的发布者应该是同步还是异步?

转载 作者:行者123 更新时间:2023-12-02 16:04:35 24 4
gpt4 key购买 nike

我对机制的看法:

  • 模式明智的发布者应该只发布一个事件,而不应该关心该主题/事件的监听器/订阅者。
  • 对于 JavaScript,很多 Pub/Sub 框架都以同步方式发布事件
  • 例如:框架只维护事件到函数的映射。
  • 在特定事件发生时,它会迭代订阅者并一一调用函数 -> function_1.apply(context, args) 然后是 function_2.apply(context, args)
  • 这使其成为同步的,除非 function_1 完成,否则 function_2 不知道发生了特定事件。

在 JavaScript 中实现 Pub/Sub 的理想方式是什么?

最佳答案

我在发布方法中添加了一个“enqueue”参数,当为真时,将实际发布包装在 setTimeout(..., 0) 中,以便发布者可以选择立即处理触发,或者将其排队JavaScript 执行队列,允许当前执行路径首先完成。

如果您维护自己的订阅者列表,则可以让 subscribe 方法实现排队标志作为订阅的属性。因此,发布者可以根据订阅中指示的偏好将各个订阅者排入队列。

关于javascript - Pub/Sub 中的发布者应该是同步还是异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30890550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com