Merge pull request #19136 from Snuffleupagus/WorkerMessageHandler-this
Shorten the `WorkerMessageHandler` class a little bit
This commit is contained in:
commit
9f90bc9114
@ -70,9 +70,23 @@ class WorkerTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class WorkerMessageHandler {
|
class WorkerMessageHandler {
|
||||||
|
static {
|
||||||
|
// Worker thread (and not Node.js)?
|
||||||
|
if (
|
||||||
|
typeof window === "undefined" &&
|
||||||
|
!isNodeJS &&
|
||||||
|
typeof self !== "undefined" &&
|
||||||
|
/* isMessagePort = */
|
||||||
|
typeof self.postMessage === "function" &&
|
||||||
|
"onmessage" in self
|
||||||
|
) {
|
||||||
|
this.initializeFromPort(self);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static setup(handler, port) {
|
static setup(handler, port) {
|
||||||
let testMessageProcessed = false;
|
let testMessageProcessed = false;
|
||||||
handler.on("test", function (data) {
|
handler.on("test", data => {
|
||||||
if (testMessageProcessed) {
|
if (testMessageProcessed) {
|
||||||
return; // we already processed 'test' message once
|
return; // we already processed 'test' message once
|
||||||
}
|
}
|
||||||
@ -82,13 +96,11 @@ class WorkerMessageHandler {
|
|||||||
handler.send("test", data instanceof Uint8Array);
|
handler.send("test", data instanceof Uint8Array);
|
||||||
});
|
});
|
||||||
|
|
||||||
handler.on("configure", function (data) {
|
handler.on("configure", data => {
|
||||||
setVerbosityLevel(data.verbosity);
|
setVerbosityLevel(data.verbosity);
|
||||||
});
|
});
|
||||||
|
|
||||||
handler.on("GetDocRequest", function (data) {
|
handler.on("GetDocRequest", data => this.createDocumentHandler(data, port));
|
||||||
return WorkerMessageHandler.createDocumentHandler(data, port);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static createDocumentHandler(docParams, port) {
|
static createDocumentHandler(docParams, port) {
|
||||||
@ -879,25 +891,9 @@ class WorkerMessageHandler {
|
|||||||
|
|
||||||
static initializeFromPort(port) {
|
static initializeFromPort(port) {
|
||||||
const handler = new MessageHandler("worker", "main", port);
|
const handler = new MessageHandler("worker", "main", port);
|
||||||
WorkerMessageHandler.setup(handler, port);
|
this.setup(handler, port);
|
||||||
handler.send("ready", null);
|
handler.send("ready", null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function isMessagePort(maybePort) {
|
|
||||||
return (
|
|
||||||
typeof maybePort.postMessage === "function" && "onmessage" in maybePort
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Worker thread (and not Node.js)?
|
|
||||||
if (
|
|
||||||
typeof window === "undefined" &&
|
|
||||||
!isNodeJS &&
|
|
||||||
typeof self !== "undefined" &&
|
|
||||||
isMessagePort(self)
|
|
||||||
) {
|
|
||||||
WorkerMessageHandler.initializeFromPort(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
export { WorkerMessageHandler, WorkerTask };
|
export { WorkerMessageHandler, WorkerTask };
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user