如何在socket io事件循环中处理knex update查询

bqujaahr  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我的节点服务器中有一个套接字侦听器,它在毫秒内接收套接字事件,我正在用knex.js和mysql client更新事件数据中接收的状态。但有时它不会更新,因为更快的事件循环。
我尝试过异步等待,但没有帮助我。这是我的密码。请帮我把这件事理清楚。

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;
    }
}
cxfofazt

cxfofazt1#

1.确保您正在获取套接字事件。使用套接字确认来确保。
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);
});

相关问题