2016-10-01 84 views
2

我正在登錄系統上工作,需要監視用戶是否已登錄/退出。返回其確定用戶的登錄狀態的值以下方式:如何觀察對象方法返回的屬性更改

Parse.User.current().id // returns id when logged in 
Parse.User.current() // returns null when logged out 

預期功能(僞):

watch(Parse.User.current().id, function (old_val, new_val) { 
    console.log('User id has changed from: ', old_val, ' to: ', new_val); 
}); 
// expected result: User id has changed from null to H4tn34vw0 

我想保持廣泛的瀏覽器支持,像IE9 +。我認爲Object.observe(),但它可以觀察對象的屬性,而不是方法返回的值,如果我是正確的。同樣使用setInterval()並且每秒檢查對象可能不是性能的好主意。

回答

1

這可能無法按預期工作。 因爲我很確定Parse.User.current()每次調用時都會返回一個不同的對象,並且每個用戶至少有一個不同的對象。 如果屬性沒有改變,你不能觀察屬性改變,而是返回的對象會改變屬性。

創建登錄和註銷功能,讓用戶登錄或註銷時發送事件。然後你有什麼可以監視/觀察。