我正在开发登录系统,需要查看用户是否登录/注销。判断用户登录状态的值通过以下方式返回:
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()
并每秒检查一次对象对于性能而言可能不是一个好主意。
最佳答案
这可能不会像您预期的那样工作。
因为我很确定每次调用 Parse.User.current()
时都会返回一个不同的对象,并且每个用户至少返回一个不同的对象。
如果属性没有改变,你就不能看到属性改变,而是返回的对象发生了改变。
创建登录和注销函数,并让它们在用户登录或注销时发送事件。然后你就有了一些你可以监控/观察的东西。
关于javascript - 如何观察对象的方法返回的属性变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807493/