messageport-observable
Version:
This provides some magic wrappers for [MessagePort][1] objects and things that resemble them (windows/iframes, workers, etc.). The wrapped objects still have the same API as MessagePorts, but also have some additional features.
23 lines (17 loc) • 482 B
JavaScript
importScripts('messageport-observable.js');
let x = 1;
let wrapPort = MessagePortObservable.wrapPort;
self.onconnect = function(connectEvent) {
let port = wrapPort(connectEvent.ports[0]);
port.filter(event => event.data === 'inc')
.subscribeAndPostReplies(event => {
x += 1;
return [`inc ${x}`];
});
port.filter(event => event.data === 'dec')
.subscribeAndPostReplies(event => {
x -= 1;
return [`dec ${x}`];
});
port.start();
};