【发布时间】:2014-12-13 19:30:24
【问题描述】:
在过去的 3 天里,我一直在这件事上碰壁。
我正在使用sailsjs 和捆绑的水线ORM。我想一个接一个地运行数据库调用。我知道我可以通过嵌套在“then”调用中来做到这一点,但它看起来不对。
我已经多次阅读 Q 文档和教程,但我仍然不知道如何从现有 Promises 依次连接和触发“then”调用:(
我想:
- 创建用户
- 创建一个动作
- 链接用户和操作
- 更新用户
- 更新操作
我的代码看起来像
var mail = 'test@test.com';
Users.create({email:mail, name:''}).then(console.log).fail(console.log);
Actions.create({actionID:123})
.then(function(error, action){
Users.findOneByEmail(mail).then(function(person){
person.actions.add(action.id);
person.save(console.log);
}).fail(console.log)
});
Users.update({email:mail},{name:'Brian'}).exec(console.log);
Actions.update({actionID:123},{now:'running'}).exec(console.log);
从代码中可以看出,我一直在使用 exec & then 的组合:P
我认为方法是连接 Users.create(...).then -> Action.create(...).then -> Users.findOneByEmail(...).then -> *和更新。
非常感谢任何帮助
【问题讨论】:
标签: orm promise sails.js q waterline