/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
"use strict";
class WorkerDispatcher {
#msgId = 1;
#worker = null; // Map of message ids -> promise resolution functions, for dispatching worker responses
#pendingCalls = new Map();
#url = "";
constructor(url) { this.#url = url;
}
start() { // When running in debugger jest test, we don't have access to ChromeWorker if (typeof ChromeWorker == "function") { this.#worker = new ChromeWorker(this.#url);
} else { this.#worker = new Worker(this.#url);
} this.#worker.onerror = err => {
console.error(`Error in worker ${this.#url}`, err.message);
}; this.#worker.addEventListener("message", this.#onMessage);
}
function asErrorMessage(error) { if (typeof error === "object" && error && "message" in error) { // Error can't be sent via postMessage, so be sure to convert to // string. return {
error: true,
message:
error.message +
(error.stack ? "\nStack in the worker:" + error.stack : ""),
metadata: error.metadata,
};
}
// Might be loaded within a worker thread where `module` isn't available. if (typeof module !== "undefined") {
module.exports = {
WorkerDispatcher,
workerHandler,
};
}
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.