这无疑会令人尴尬,但谁能告诉我为什么下面简单原始查询的 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/