Я использую транзакцию Sequelize, которая успешно возвращается, однако результат не определен. Как указано в документации:
.then(function (result) {
// Transaction has been committed
// result is whatever the result of the promise chain returned to the transaction callback
Результат должен содержать вещи!
Мой код успешно работает и обновляет базу данных, входит в блок .then
, но результат регистрируется как "неопределенный" .
return sequelize.transaction(t => {
return createUser(body, {transaction: t})
.then(user => {
if (user != null) {
return createSetup({"user_id" : user.dataValues.id}, {transaction: t})
.then(setup => {
console.log("setup was created")
})
.catch(err => {
throw new Error("the setup key was not created successfully... reverting transaction 2")
})
}
else {
throw new Error("no return value from creating user");
}
})
.catch(err => {
throw new Error("Failed to create user")
})
})
.then(result => {
console.log(result) //this returns undefined
res.status(200).send({
success: true,
message: "The user was successfully created.",
})
})
.catch(error => {
console.log("error")
res.status(400).send({
success: false,
message: error
})
})
})
Мне очень нужен результат объекта user
, но независимо от того, что я делаю, он остается неопределенным. Я пытался с и без возврата на мои последующие функции в рамках транзакции.