您可以使用Promise的方式来等待Bus.emitObject(bankData.event,{data:body})
调用结束后再返回rest值。可以将其包装在一个新的Promise中,并在then
中返回所需的结果。
下面是修改后的代码示例:
import Bus from "../eventBus";
const post = (req, res, next) => {
const { ...body } = req.body;
BankBase.findByPk(body.id)
.then(bankData => {
if (!bankData) {
res.sendStatus(404);
} else {
return new Promise((resolve, reject) => {
Bus.emitObject(bankData.event, { data: body }, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
})
.then(rest => {
return res.json({ code: 200, data: rest.rest });
})
.catch(error => {
return res.json({ msg: '该银行还未注册,请先注册。' });
});
}
})
.catch(function (error) {
return res.json({ msg: '该银行还未注册,请先注册。' });
});
};
通过将Bus.emitObject()
封装在一个新的Promise中,我们可以使用.then()
来获取异步操作的结果,并根据结果进行相应的处理和返回。
内容由零声教学AI助手提供,问题来源于学员提问