我正在使用登录系统,需要观察用户是否已登录/退出。确定用户登录状态的值以下列方式返回:
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()
并每秒检查一次对象可能不是一个好主意。
答案 0 :(得分:1)
这可能不会像你期望的那样奏效。
因为我非常确定Parse.User.current()
每次调用时都会返回不同的对象,并且每个用户至少会返回一个不同的对象。
如果属性没有改变,你就无法观察属性变化,而是返回对象。
创建登录和注销功能,让用户在用户登录或注销时调度事件。然后你有一些你可以监视/观察的东西。