2011-07-26 59 views
1

有人可以向我解釋警報的升序,以及以下一塊backbone.js代碼中模型的項目值嗎?Backbone.js範圍

var model = new Ingredient({"item" : "Before",}); 
alert("1"); 
alert(model.get('item')); // Before 

model.fetch({ success: function() { 
    alert("3"); 
    alert(model.get('item')); // After 
}}); 

alert("2"); 
alert(model.get('item')); // Before 

我似乎無法弄清楚如何在定義的相同範圍內更新模型的狀態。這很重要嗎?

這是可能的,我想這是錯誤的方式,或者我不明白關於JavaScript範圍或功能的基本知識。

感謝

回答

1

成功:函數()異步調用,因爲它實際只是一個jQuery AJAX調用的包裝。在人說話 - 。獲取方法向服務器請求模型數據。 fetch方法立即返回並且不等待http請求完成。當http請求完成時(如果成功),則成功:function() callback被調用。這將是最後發生的事情。

+1

正如bradgonesurfing筆記。只是爲了更具體地瞭解發生了什麼:異步的另一個名稱(種類)是非阻塞的。如果你來自非事件語言,可能會更有意義。在所有的現實中,'fetch'不能保證最後返回。這是可能的(雖然不是很有可能),取回可能會觸發警報之前警報(「2」)...因爲取回是非阻塞的... –