Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在运行下一个查询之前,请等待上一个查询完成_Node.js_Typescript_Sequelize.js - Fatal编程技术网

Node.js 在运行下一个查询之前,请等待上一个查询完成

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

下面的代码是websocket的一部分,它连接到第三方API并经常从中接收消息,目前大约有3条消息连续出现,我想知道如何让sequelize等到执行一个查询后再执行下一个查询

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);
        });
    }
});
基本上,应该发生的是一条消息,其类型应为收到的
,并在
订单
表中创建一行,一秒钟后,匹配消息应出现,理论上,它应等待上一个查询运行,然后再更新先前创建的订单,尽管情况并非如此,且模型未更新

我曾经考虑过简单地在
匹配
完成
消息类型下面的代码块中添加延迟,但是有没有其他方法来实现我所寻找的呢