I’m looking for a Swift/Foundation NotificationCenter equivalent in vanilla JS.
Here’s a short explanation on what NotificationCenter is:
With NotificationCenter, you’re able to post a notification and other objects can subscribe to that notification. When the notification gets sent, a function gets invoked in the classes that subscribed. Optionally, you can also send custom user info.
Subscribing to a notification looks like this:
NotificationCenter.default.addObserver(
self,
selector: #selector(fooPosted),
name: Notification.Name("foo"),
object: nil
)
Posting a notification looks like this:
NotificationCenter.default.post(
name: Notification.Name("foo"),
object: nil,
userInfo: ["bar": 42]
)
Advertisement
Answer
Assuming client-side javascript, you can use postMessage to implement a basic pub/sub workflow:
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>
Alternatively, there are custom events.