0
我的观点的机制:Pub/Sub中的发布者应该是Synchronous还是Asynchronous?
- 模式明智的出版商应该只发布一个事件,不应该关心该主题/事件侦听器/订阅。
- 在JavaScript的情况下,Pub/Sub的很多框架以Sync方式发布事件
- 例如:框架只是维护事件映射到函数。
- 在特定事件发生时,它遍历订阅者并逐一调用函数 - > function_1.apply(context,args),然后function_2.apply(context,args)
- 这使得它同步,除非和直到function_1完成,function_2不知道发生了特定的事件。
什么是在JavaScript中实现Pub/Sub的理想方式?
你刚才说的“框架”,不说哪个框架。发布者是异步的。订阅者也是异步的,但是由于JS是单线程的,你不能使订阅者的异步**执行**。如果你有一个用户阻塞,整个事情阻塞,直到完成,是的,回调地图中的下一个功能将不会做任何事,直到前一个完成。 – Mjh
@Mjh虽然我们不能让订阅者的执行异步,我们不能只是给JavaScript运行时执行函数负责,而不是通过调用/应用一个接一个地调用函数吗? – vivekj011
所以如果我得到这个权利,你的问题是你可以执行函数,但不是按照它们在回调映射中的定义顺序吗?无论你做什么,这些功能都会一个接一个地执行。现在的问题是,这些函数是阻塞还是非阻塞? – Mjh