我的节点服务器中有一个套接字侦听器,它在毫秒时间内接收到套接字事件,并且正在使用MySql Client使用knex.js更新事件数据中接收到的状态。但有时由于事件循环更快而不会更新。
我尝试了异步等待,但是它没有帮助我。这是我的代码。请帮我解决这个问题。
socket.on("orderUpdate", function(message) {
setImmediate(function(){
orderModel.updateOrderStatus(message);
})
});
以下是我的updateOrderStatus
方法。
updateOrderStatus: async function (data) {
try {
return await knex(table_name)
.where('order_id', data.order_id)
.update({
status: data.status,
})
} catch (e) {
return e;
}
}
答案 0 :(得分:0)
1。确保您正在获取套接字事件。使用socket acknowledgment确定。
2。打印查询日志,以检查更新是否成功。
socket.on("orderUpdate", async function (message, callback) {
let resp = await orderModel.updateOrderStatus(message);
return callback(resp);
});
socket.emit("orderUpdate", message, (resp) => {
console.log("resp : ", resp);
});