您可以使用async/await来等待Bus.emitObject的调用结果,然后再返回rest值。请参考以下修改后的代码:
import Bus from "../eventBus";
const post = async (req, res, next) => {
try {
const {...body} = req.body;
const bankData = await BankBase.findByPk(body.id);
if (!bankData) {
return res.sendStatus(404);
} else {
const rest = await Bus.emitObject(bankData.event, {data: body});
return res.json({code: 200, data: rest.rest});
}
} catch (error) {
return res.json({msg: '该银行还未注册,请先注册。'});
}
}
module.exports = {
post
};
通过使用async关键字将post函数标记为异步函数,并在需要等待的地方使用await关键字来等待promise对象的解析结果。这样,在调用Bus.emitObject之后,会暂停执行直到该调用完成并返回结果,然后再继续执行后续代码。这样就能保证在返回res之前,rest值已经被获取到了。
内容由零声教学AI助手提供,问题来源于学员提问