后遗症-创建一个幼虫后不返回承诺

Sequelize- Not return promise after create an instarnce

本文关键字:承诺 返回 一个 创建 后遗症      更新时间:2023-09-26

我试图创建新的过滤器并打印(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 })

打印"filter",我得到了带有created_at等的新实例,但id为NULL。

id定义为:

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

请有人帮忙这里出了什么问题?

谢谢!

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

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

我调试了它,并在之后添加了console.log

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

所以现在,它在"之后"打印然后打印"******"

无论如何,谢谢。