对sequelize findAndCountAll的结果进行异步修改,怎么保持顺序不变

sequelize findAndAll() 获得一个数组,包含学生总数和相关信息的数组count和排序后的rows

await peoples = model.findAndCountAll({
    where: {
    loginName: name
    },
    order: updatedAt Desc'
})

对students.rows再异步插入成绩数据,

let result
Promise.all(students.rows.map((student) =>{
    await score =  model1.findById(student.id,{
       attributes: ['score']
    })
    student.score  = score
    result.push(student)
    }))

但是, 异步操作后获得的result已经不是排序的结果,会出现乱序,如何异步行为顺序执行?

阅读 5.2k
2 个回答

笨办法,操作完成后补一次js排序 .sort(),抛砖引玉,楼下继续。

我的方法是: 先提取model中students结果的id,到数组ids,然后一次性从model2中获取所有的相关信息,然后用2重循环,根据id一一插入对应数据,暂时用的就是这种方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进