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

Promiseから値を返す方法

    thenをネストしないようにしてください 、およびプロミスチェーンをフラットに保ちます。さらに、2つのモデルケースを1つのコード(DRY)に結合できます。最後に、mapを使用します forEachの代わりに したがって、promiseの配列を返し、それを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. SASJMPをSalesforce.comに接続する

    2. mysqlselectqueryで2つの日付の間の日付のリストを取得する方法

    3. トランザクションログ構成の問題

    4. MySQLジョブを開始できませんでした