本文整理匯總了TypeScript中worker_threads.Worker.on方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Worker.on方法的具體用法?TypeScript Worker.on怎麽用?TypeScript Worker.on使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類worker_threads.Worker
的用法示例。
在下文中一共展示了Worker.on方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: Promise
return new Promise((resolve, reject) => {
const worker = new workerThreads.Worker(__filename, {
workerData: script
});
worker.on('message', resolve);
worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
reject(new Error(`Worker stopped with exit code ${code}`));
});
});
示例2: initialize
initialize() {
this._worker = new Worker(path.resolve(__dirname, './threadChild.js'), {
eval: false,
stderr: true,
stdout: true,
workerData: {
cwd: process.cwd(),
env: {
...process.env,
JEST_WORKER_ID: String(this._options.workerId),
} as NodeJS.ProcessEnv,
// Suppress --debug / --inspect flags while preserving others (like --harmony).
execArgv: process.execArgv.filter(v => !/^--(debug|inspect)/.test(v)),
silent: true,
...this._options.forkOptions,
},
});
this._worker.on('message', this.onMessage.bind(this));
this._worker.on('exit', this.onExit.bind(this));
this._worker.postMessage([
CHILD_MESSAGE_INITIALIZE,
false,
this._options.workerPath,
this._options.setupArgs,
]);
this._retries++;
// If we exceeded the amount of retries, we will emulate an error reply
// coming from the child. This avoids code duplication related with cleaning
// the queue, and scheduling the next call.
if (this._retries > this._options.maxRetries) {
const error = new Error('Call retries were exceeded');
this.onMessage([
PARENT_MESSAGE_CLIENT_ERROR,
error.name,
error.message,
error.stack!,
{type: 'WorkerError'},
]);
}
}