PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wykonywanie zapytań sekwencyjnych synchronicznie

Użyj Promise.all aby wykonać wszystkie twoje zapytania, a następnie wywołaj następną funkcję.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać kolumnę, jeśli nie istnieje w PostgreSQL?

  2. Jak zmienić formatowanie moich wartości zwracanych w tej funkcji?

  3. postgres - wybierz * z istniejącej tabeli - psql mówi, że tabela nie istnieje

  4. Jak wstawić dane do tabeli za pomocą procedur składowanych w postgresql

  5. Poprawa wydajności procedur składowanych w PostgreSQL 9.6