2016-03-17 62 views
2

是record.set同步還是異步?如果我想確保在record.set之後放置的代碼在文檔完全更新時執行,那麼我應該使用record.whenReady(function(){...})來包裝我的代碼?在record.set之後調用record.whenReady是否有意義?

考慮代碼如下所示:

var record = ds.record.getRecord(`table/${id}`); 
record.whenReady(function() { 
    record.set('field', 'value'); 
    // do I need whenReady here? 
    // code that should be executed when document is updated 
}) 

回答

2

record.set是同步,因爲只要你把它叫做將存儲的價值,並觸發你有相關的本地監聽你的應用程序中。

var record = ds.record.getRecord(`table/${id}`); 

record.subscribe('field', function(data) { 
    //do something 
}); 

record.whenReady(function() { 
     record.set('field', 'value'); // this will trigger the subscribe callback 
     record.get('field') // now returns 'value' 
}) 

whenReady應該用來保證備案試圖讀/寫之前已經加載當前數據。如果這是第一次請求記錄,它將等待服務器響應記錄內容,否則它將使用客戶端中存儲的緩存記錄狀態。

總之,致電.set後,您可以放心,您的文件已更新!

+0

我明白了,謝謝! –

相關問題