在使用 Worker 的情况下,你可以通过同步方式来处理异步操作。以下是将给定的代码修改为使用 Worker 同步方法的示例:
const { workerData, parentPort } = require(‘worker_threads’); const { …body } = workerData;
BankBase.findByPk(body.id)
.then(bankData => {
if (!bankData) {
parentPort.postMessage({ code: 404 });
} else {
const rest = Bus.emitObject(bankData.event, { data: body });
parentPort.postMessage({ code: 200, data: rest.rest });
}
})
.catch(function (error) {
parentPort.postMessage({ msg: '该银行还未注册,请先注册。' });
});
然后,在主线程中创建一个新的 Worker 并发送数据:
const { Worker } = require(‘worker_threads’);
app.post(‘/route’, (req, res) => {
const worker = new Worker('./worker.js', { workerData: req.body });
worker.on('message', message => {
res.json(message);
});
worker.on('error', error => {
res.status(500).json({ error: error.message });
});
worker.on('exit', exitCode => {
if (exitCode !== 0) {
res.status(500).json({ error: `Worker stopped with exit code ${exitCode}` });
}
});
});
请注意,上述代码是基于 Node.js 的 worker_threads 模块实现的,并假设你已经正确配置了相应的环境和依赖项。
内容由零声教学AI助手提供,问题来源于学员提问




