node.js - 在 then() 中对查询进行序列化

标签 node.js callback promise sequelize.js

尝试去:

  • 获取用户列表
  • 从用户详细信息中获取用户创建的行程
  • 并根据输出执行一些操作

  • 以下是我试图运行的代码。

    models.user.findAll({})
        .then(function (users) {
            for (var i = 0; i < users.length; i++) {
                var userName = users[i].name;
                var userEmail = users[i].email;
    
                models.trip.findOne({ attributes: [ [userName, 'name'], [userEmail, 'email'], 'id' ], where: { userId: users[i].id } })
                    .then(function (trip) {
                        if (trip == null) {
                            //Send Emails
                        }
                    });
            }
        })
        .catch(function (error){ // enter code here
            console.log(">>>>>",error);
        });
    

    由于回调,第二个 Sequelize 无法正常运行。

    你能就如何处理这个问题提出建议吗?是否使用 asyncawait/coyield?

    最佳答案

    例如,您应该使用 console.log 进行调试。首先你应该尝试打印你的第一个回调结果,可能是数据库连接没有正确配置,可能是表为空。有很多原因。使用 .forEach 方法而不是 'for' 循环更舒服

    array.forEach((item, i, arr)=>{
        ///....
    })
    

    关于node.js - 在 then() 中对查询进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437100/

    相关文章:

    node.js - 安装 PhoneGap 得到 "error not found: git"

    javascript - nodejs mssql 返回记录集

    javascript - 接收由 jQuery 发送并由 Node Js 接收的 JSON 形式的数组表单数据

    python - 需要帮助在不使用 lambda 的情况下重写 Python 函数

    javascript - jQuery .ajax() 回调范围困惑

    javascript - 可撤销 promise 的状态

    node.js - Node JS 函数未执行。可能是什么原因?

    android - 如何检测谷歌地图服务上的 moveCamera 完成?

    javascript - 嵌套解析 promise 之外的空数组

    javascript - Axios 返回未决 promise