如何解决worker_threads 无法在 Nodejs 中执行 Promise
我在 nodejs 中使用 worker_threads 模块。
但是worker不能执行Promise代码。
DataCloneError: # 无法克隆。发生。
如何执行异步代码?
//main.js
const res = await Promise.all(
array.map((i) =>
startWorker(`${__dirname}/dictWorker.js`,i)
)
);
function startWorker(dir,value) {
return new Promise((resolve,reject) => {
try {
const worker = new Worker(dir,{
workerData: { value: value },});
worker.once("message",(result) => {
console.log(result);
resolve(result);
});
} catch (error) {
reject(error);
}
});
}
//worker.js
const { workerData,parentPort } = require("worker_threads");
async function job(arr) {
try {
const _sleep = (delay) =>
new Promise((resolve) => setTimeout(resolve,delay));
await _sleep(2000);
return true;
} catch (error) {
throw new Error(error.message);
}
}
parentPort.postMessage(job(workerData.value));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。