Javascript Sequelize(?):存储在变量中的Save方法在调用时抛出错误:未处理的拒绝类型错误:无法读取属性';isNewRecord';未定义的
我正在尝试将SequelizesJavascript Sequelize(?):存储在变量中的Save方法在调用时抛出错误:未处理的拒绝类型错误:无法读取属性';isNewRecord';未定义的,javascript,sequelize.js,Javascript,Sequelize.js,我正在尝试将Sequelizes实例存储在变量中,以便稍后调用。当我从该变量调用它时,它抛出错误Unhandled rejection TypeError:无法读取未定义的属性“isNewRecord” 保存是在数组中的关联对象上执行的。如果我直接调用我试图存储的代码,它就会工作。它在存储时失败 我的代码: models.Person.hasMany(models.TaskExecutor, { foreignKey: 'personID' }); models.TaskExecutor.bel
实例存储在变量中,以便稍后调用。当我从该变量调用它时,它抛出错误Unhandled rejection TypeError:无法读取未定义的属性“isNewRecord”
保存是在数组中的关联对象上执行的。如果我直接调用我试图存储的代码,它就会工作。它在存储时失败
我的代码:
models.Person.hasMany(models.TaskExecutor, { foreignKey: 'personID' });
models.TaskExecutor.belongsTo(models.Person, { foreignKey: 'personID' });
const options = {
include: [
{
model: models.TaskExecutor,
where: { ... }
}
]
};
let handler;
models.Person.findOne(options)
.then(person => {
handler = person.task_executors[0].save;
handler().then(...); // THIS THROWS ERROR
// HOWEVER
person.task_executors[0].save().then(...); // WORKS JUST FINE
})
知道原因是什么吗?在创建处理程序时,您可能需要绑定this
关键字变量,因为save方法是类方法。您可以这样做:
const handler = person.task_executors[0].save.bind(person.task_executors[0]);
handler.then() ....
你可以在这里阅读更多关于这个的内容是的,你是对的。谢谢你让我检查这个。出于某种原因,我认为不是这个原因。我还不习惯“这个”约束问题。