sql >> Database >  >> RDS >> PostgreSQL

Voer Sequelize-query's synchroon uit

Gebruik Promise.all om al uw zoekopdrachten uit te voeren, roept u de volgende functie aan.

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 volgorde op naam asc ingore leidt 'de'

  2. MaxListenersExceededWaarschuwing:mogelijk EventEmitter-geheugenlek gedetecteerd. 11 berichtenluisteraars toegevoegd. Gebruik emitter.setMaxListeners() om de limiet te verhogen

  3. Beste type indexering als er een LIKE-clausule is

  4. SQL herstellen vanuit meerdere SQL-bestanden