这是对 Sequelize.js 使用承诺的正确方法吗?
Is this the proper way to use promises with Sequelize.js?
var newUser;
newUser = {
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password
};
global.db.User.create(newUser).then(function(dbUser) {
var newEntity;
newEntity = {
name: newUser.name + " Default Entity"
};
return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
console.log(dbEntity);
return res.json(dbUser.display());
})["catch"](function(err) {
console.log(err);
return next(err);
});
global.db
是一个具有 User
模型和 Entity
模型的 Sequelize 对象。我想先创建一个用户,然后为该用户创建一个实体。这是将事物链接在一起以使 promise 有用的正确方法吗?
是;这是完全正确的。
如果将 catch
调用为 .catch()
而不是 ["catch"]
:
可能会更清晰
global.db.User.create(newUser).then(function(dbUser) {
var newEntity;
newEntity = {
name: newUser.name + " Default Entity"
};
return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
console.log(dbEntity);
return res.json(dbUser.display());
}).catch(function(err) {
console.log(err);
return next(err);
});
让一切都变得漂亮和统一。
var newUser;
newUser = {
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password
};
global.db.User.create(newUser).then(function(dbUser) {
var newEntity;
newEntity = {
name: newUser.name + " Default Entity"
};
return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
console.log(dbEntity);
return res.json(dbUser.display());
})["catch"](function(err) {
console.log(err);
return next(err);
});
global.db
是一个具有 User
模型和 Entity
模型的 Sequelize 对象。我想先创建一个用户,然后为该用户创建一个实体。这是将事物链接在一起以使 promise 有用的正确方法吗?
是;这是完全正确的。
如果将 catch
调用为 .catch()
而不是 ["catch"]
:
global.db.User.create(newUser).then(function(dbUser) {
var newEntity;
newEntity = {
name: newUser.name + " Default Entity"
};
return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
console.log(dbEntity);
return res.json(dbUser.display());
}).catch(function(err) {
console.log(err);
return next(err);
});
让一切都变得漂亮和统一。