Bridges class function calls between two contexes(workers) with messages.
npm install --save message-bridge
ts
// The service that runs on the worker.
class Service {
public getTrue(): boolean {
return true;
}
public addAsync(a: number, b: number): Promise {
return new Promise(resolve => { setTimeout(() => resolve(a + b), 1); });
}
}
// Create the bridge interface (return promise for sync functions).
interface ServiceBridge {
getTrue(): Promise;
addAsync(a: number, b: number): Promise;
}
let channel = / Find a way to create your channel (MessageChannel or just use the worker itself) /;
// At your main program:
let servicePromise: Promise = ServiceToMessageBridge.create(channel.port1);
// At the worker:
let service = new Service();
let bridge2 = MessageToServiceBridge.create(service, channel.port2);
// Then, at your main program:
let serviceBridge = await servicePromise;
let result = await serviceBridge.getTrue();
let sum = await serviceBridge.addAsync(4,9);
``