过去3天我一直在我的头上贴墙。承诺与承诺连线水线电话
我正在使用sailsjs &绑定的水线ORM。我想要一个接一个地运行数据库调用。我知道我可以通过嵌入“然后”调用来实现这一点,但它看起来错了。
我已经经由Q文档和教程几次,但我还是不明白如何连接和火“然后”从现有承诺依次:(
调用我想:
- 创建一个用户
- 创建一个动作
- 链接的用户&动作
- 更新用户
- 更新动作
我的代码看起来像
var mail = '[email protected]';
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 &的混合,然后代码中看到的:P
我的思维方式就是连接 Users.create(...),然后 - > Action.create(...),然后 - > Users.findOneByEmail(...),然后 - > *和更新。
从任何帮助
你的'失败'不会工作,更喜欢'catch'。除了那些好的工作! – 2014-10-19 16:42:00
谢谢@BenjaminGruenbaum 我不知道我是否需要最后完成()或然后()例如'})。然后()。失败('。会这样吗? 或交换失败(...) (...)是什么意思? – codemeasandwich 2014-10-20 08:37:09
同样在http://documentup.com/kriskowal/q/#tutorial第一个例子有'catch(...)。done();'为什么我们需要最后的**完成**? – codemeasandwich 2014-10-20 08:50:03