過去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