Swift/Foundation NotificationCenter在JavaScript中的等效



我正在寻找一个Swift/Foundation NotificationCenter等效的香草JS。


这里有一个关于NotificationCenter是什么的简短解释:

使用NotificationCenter,您可以发布通知,其他对象可以订阅该通知。发送通知时,将在订阅的类中调用一个函数。可选的,你也可以发送自定义用户信息。

订阅通知如下所示:

NotificationCenter.default.addObserver(
self,
selector: #selector(fooPosted),
name: Notification.Name("foo"),
object: nil
)

发布通知看起来像这样:

NotificationCenter.default.post(
name: Notification.Name("foo"),
object: nil,
userInfo: ["bar": 42]
)

假设客户端是javascript,你可以使用postMessage来实现一个基本的发布/订阅工作流:

window.addEventListener("message", e => {
console.log('got the message', e.data)  
});
window.addEventListener("message", e => {
console.log('me too', e.data)  
});
n = 0
function test() {
window.postMessage('hello' + (++n))
}
<button onclick='test()'>test</button>

或者,有自定义事件。

最新更新