Sequelize-在创造一个instarnce后不回复承诺

时间:2016-07-31 13:27:45

标签: javascript node.js express promise sequelize.js

我正在尝试创建新的过滤器并打印(console.log)刚创建的对象的id,但它不会进入.then函数。 这是代码:

var Sequelize = require('sequelize');
var FilterModel = require('../models/filters');
var Filter = new FilterModel(Database, Sequelize);

Filter.create({ name: data.filter_name }).then(function(filter) {
  console.log( '***************************************' );
});

并且“**”未打印,但条目位于数据库中。

当我试图这样做时:

var filter = Filter.create({ name: data.filter_name })

打印'过滤器'我已经使用created_at等获得了新实例,但id为NULL。

id定义为:

id: {
    allowNull: false,
    autoIncrement: true,
    primaryKey: true,
    type: Sequelize.INTEGER
  },

请有人可以帮忙解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:-1)

实际上,它进入'then'并打印控制台。

它绕过'then'转到下一行,然后返回(在promise完成后)到'then'函数。

我调试它并在

之后添加了console.log
Filter.create({ name: data.filter_name }).then(function(filter) {
 console.log( '***************************************' );
});
console.log('after')

现在,它打印'之后' 然后打印'******'

非常感谢。