Node.js 在运行下一个查询之前,请等待上一个查询完成
下面的代码是websocket的一部分,它连接到第三方API并经常从中接收消息,目前大约有3条消息连续出现,我想知道如何让sequelize等到执行一个查询后再执行下一个查询Node.js 在运行下一个查询之前,请等待上一个查询完成,node.js,typescript,sequelize.js,Node.js,Typescript,Sequelize.js,下面的代码是websocket的一部分,它连接到第三方API并经常从中接收消息,目前大约有3条消息连续出现,我想知道如何让sequelize等到执行一个查询后再执行下一个查询 this.client.ws.on(WebSocketEvent.ON_MESSAGE, async (message) => { if (message.type == 'received') { await db.Order.create({ symbol: mes
this.client.ws.on(WebSocketEvent.ON_MESSAGE, async (message) => {
if (message.type == 'received') {
await db.Order.create({
symbol: message.product_id,
orderId: message.order_id,
price: message.funds,
side: message.side,
orderedAt: message.time,
sold: false
}).catch(err => {
console.log(err);
process.exit();
});
} else if (message.type == 'match') {
await db.Order.update({
volume: message.size
}, {
where: {
orderId: message.taker_order_id
}
}).catch(err => {
console.log(err);
});
} else if (message.type == 'done') {
console.log(message);
await db.Order.update({
completeAt: message.time
}, {
where: {
orderId: message.order_id
}
}).catch(err => {
console.log(err);
});
}
});
基本上,应该发生的是一条消息,其类型应为收到的,,并在订单
表中创建一行,一秒钟后,匹配消息应出现,理论上,它应等待上一个查询运行,然后再更新先前创建的订单,尽管情况并非如此,且模型未更新
我曾经考虑过简单地在匹配
和完成
消息类型下面的代码块中添加延迟,但是有没有其他方法来实现我所寻找的呢