【问题标题】:Sequelize query execution order is wrongSequelize查询执行顺序错误
【发布时间】:2020-04-11 00:01:11
【问题描述】:

我有这段代码,

我的创建后钩子以错误的顺序执行数据库查询


afterCreate: async (instance1, { transaction }) => {
    const model2 = this.db.getModel('Model2');

    // PART 1
    const instance2 = await model2.findOne({
    where: { id: instance.model2Id },
    transaction,
    });

    // PART 2
    return mission.update({...}, { transaction });
}

当使用 BulkCreate(2 items) 时,我不知道为什么查询执行的顺序是,

PART 1(第一)-> PART 1(第二)-> PART 2(第一)-> PART 2(第二)。

有什么提示吗?

非常感谢。

【问题讨论】:

  • 你好,我记得,查看 sequelize 的代码,他们使用 Promise.map 来处理传递给 bulkCreate 的多个实例。一个 promise.map 等待所有的 Promise 解决。这意味着承诺是同时并行执行的。所以你描述的顺序,似乎是合乎逻辑的。

标签: node.js sequelize.js hook


【解决方案1】:

您似乎没有等待更新完成。试试:

// PART 2
    return await mission.update({...}, { transaction });

【讨论】:

    猜你喜欢
    • 2017-03-17
    • 1970-01-01
    • 2014-05-07
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多