Не удается разрешить обещание из sequelize.query - PullRequest
0 голосов
/ 03 июня 2018

Это, без сомнения, смущает, но кто-нибудь может сказать мне, почему обещание из простого необработанного запроса ниже не разрешает?Это продолжение 4.37.10.

Спасибо

'use strict';

const Sequelize = require('sequelize');

const options = {
    dialect: 'postgres',
    host: 'localhost',
    database: 'transitdispatch',
    username: 'postgres',
    password: 'postgres'
};

const sequelize = new Sequelize(options);
const p = new Sequelize.Promise(function(resolve) {
    return sequelize
        .query('SELECT * FROM "Schedule";', {type: sequelize.QueryTypes.SELECT})
        .then((schedules) => {
            return resolve(schedules);
        })
        .catch((error) => {
            console.log(error);
        });
});

p.then((schedules) => {
    console.log(`there were ${schedules.length} schedules`);
});

1 Ответ

0 голосов
/ 04 июня 2018

Проблема не в обещании.Процесс узла завершится автоматически, когда делать нечего.В этом случае, если вы закроете соединение sequelize, оно должно выйти

p.then((schedules) => {
    console.log(`there were ${schedules.length} schedules`);
    sequelize.close();
});

. Вы также можете использовать process.exit(), если вы уверены, что хотите выйти, даже если есть что-то еще ожидающее.Вы можете использовать

process._getActiveHandles();
process._getActiveRequests();

, чтобы выяснить, что удерживает процесс вашего узла для выхода.

...