sequelize.js - 无法从 sequelize.query 解决 promise

标签 sequelize.js es6-promise

这无疑会令人尴尬,但谁能告诉我为什么下面简单原始查询的 promise 没有解决?这是 4.37.10 的 Sequelize 。

谢谢

'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`);
});

最佳答案

问题不在于 promise 。当无事可做时,节点进程会自动退出。在这种情况下,如果关闭 sequelize 连接,它应该退出

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

如果您确定要退出,即使还有其他未决的事情,您也可以使用 process.exit()。您可以使用
process._getActiveHandles();
process._getActiveRequests();

找出是什么让您的节点进程退出。

关于sequelize.js - 无法从 sequelize.query 解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50661378/

相关文章:

node.js - 如何在 NodeJS Sequelize 中按查询计算组

javascript - async/await 不适用于 promisify

javascript - 只返回最里面的promise的catch并处理其他的

JavaScript promise : Chaining promise confusion

javascript - 多个异步调用回调

javascript - Promises.all 的快速失败行为

express - graphql中如何获取最后3个元素

node.js - Sequelize 尝试查询删除的列

javascript - Sequelize 自定义验证 - 无法访问实体中的所有字段

node.js - 我们可以通过 sequelize 使用迁移文件生成模型吗?