2015-11-20 37 views
1

Meteor的樂觀UI如何處理服務器拒絕和依賴操作上的錯誤?流星如何處理依賴失敗的優化操作?

如果我做的:

var item1Id = Items.insert({list: groceriesId, name: "Watercress"}); // op1 
var item = Items.findOne({_id: item1Id}); 
Items.update(item, {$set: {name: "Peppers"}}); // op2 

Items.insert({list: groceriesId, name: "Cheese"}); // op3 

如果op1未能在服務器端,但成功的客戶端,會發生什麼op2op3
他們都會回滾?

+0

_「失敗」_在哪邊?客戶端和服務器?只有服務器? –

+0

對不起,我應該指定,在服務器端失敗 – opsb

回答

1

如果op1失敗,則op2將回滾(因爲它是對不存在的對象的更新)。假設它不會以原子方式失敗,op3將會成功。

如果您想防止op3發生,除非您確定op1成功,那麼您可以在op1的回調中執行該操作。

+0

MeteorPad在這裏真的很不錯。你會有時間做到嗎?如果不是的話,我可以迅速取消。 –

+1

Salut @Kyll - 我開始了一個[這裏](http://meteorpad.com/pad/93gBboJfJ3y2kiYN5/Leaderboard),但現在需要在第一次插入時創建一個錯誤。謹慎嘗試? –