PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara mengembalikan nilai dari Janji

Cobalah untuk menghindari bersarang then , dan jaga agar rantai janji tetap datar. Selanjutnya, Anda dapat menggabungkan dua kasus model menjadi satu bagian kode (KERING). Terakhir, gunakan map alih-alih forEach jadi Anda mengembalikan serangkaian janji, yang kemudian dapat Anda masukkan ke Promise.all :

router.post('/devices', function (req, res, next) {
    var promises = loadash.map(req.body.devices, function (device) {
        return Device.forge()
            .where({deviceid: device.deviceid})
            .fetch({columns: ['id', 'mode']})
            .then(function (fetchedDevice) {
                var model = [Model_1, Model_2][fetchedDevice.get('mode')-1];
                if (model) {
                    return model.forge()
                        .where({device_id: fetchedDevice.get('id')})
                        .orderBy('epoch_time', 'DESC')
                        .fetch();
                }
            }).catch(function (err) {
                console.log(err);
            });
       });
    Promise.all(promises).then(function (currentData) {
        currentData = currentData.filter(model => model) // exclude undefined
            .map(model => model.toJSON());
        console.log('Final: ' +currentData); 
    });
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Evolusi Toleransi Kesalahan di PostgreSQL:Perjalanan Waktu

  2. Membuat fungsi di Postgresql yang tidak mengembalikan nilai komposit

  3. Optimalkan agregat lambat di LATERAL join

  4. Dapatkan tabel dan kolom yang memiliki urutan

  5. Cara Menggunakan Fungsi Substring di PostgreSQL dan Redshift