我正在寻找一个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>
或者,有自定义事件。