sql >> データベース >  >> RDS >> PostgreSQL

Sequelizeクエリを同期的に実行する

    Promise.allを使用します すべてのクエリを実行してから、次の関数を呼び出します。

    models.Attendance.findAll({
        where: {
            UserId: req.user.id
        }
    }).then(function (data) {
        // get an array of the data keys, (not sure if you need to do this)
        // it is unclear whether data is an object of users or an array. I assume
        // it's an object as you used a `for in` loop
        const keys = Object.keys(data)
        // map the data keys to [Promise(query), Promise(query), {...}]
        const hacks = keys.map((d) => {
          return models.Hackathon.findOne({
            where: {
              id: data[d].id
            }
          })
        })
        // user Promise.all to resolve all of the promises asynchronously
        Promise.all(hacks)
          // this will be called once all promises have resolved so
          // you can modify your data. it will be an array of the returned values
          .then((users) => {
            const [user1, user2, {...}] = users
            res.render('dashboard/index.ejs', {
              title: 'My Hackathons', 
              user: req.user, 
              hacks: users
            });
          })
    });


    1. 日付フィールドをインクリメントしようとすると、MySQLが重複エントリエラーを出しますか?

    2. オフラインで再利用するためにSQLテーブルの値をダウンロードする

    3. SQLServerでのsp_help_jobscheduleの使用

    4. MySQLでピボットテーブルを作成する方法