Javascript 如何观察对象返回的属性更改';s法
我正在登录系统上工作,需要观察用户是否登录/注销。确定用户登录状态的值按以下方式返回:Javascript 如何观察对象返回的属性更改';s法,javascript,web,reactive-programming,observable,watch,Javascript,Web,Reactive Programming,Observable,Watch,我正在登录系统上工作,需要观察用户是否登录/注销。确定用户登录状态的值按以下方式返回: Parse.User.current().id // returns id when logged in Parse.User.current() // returns null when logged out 预期功能(伪代码): 我想保持广泛的浏览器支持,如ie9+。我考虑了Object.observe(),但如果我正确的话,它可以监视对象属性,而不是方法返回的值。另外,使用setInterval()并
Parse.User.current().id // returns id when logged in
Parse.User.current() // returns null when logged out
预期功能(伪代码):
我想保持广泛的浏览器支持,如ie9+。我考虑了
Object.observe()
,但如果我正确的话,它可以监视对象属性,而不是方法返回的值。另外,使用setInterval()
并每秒检查一次对象可能不是提高性能的好办法。这可能不会像您预期的那样起作用。
因为我非常确定,Parse.User.current()
每次调用时都返回一个不同的对象,每个用户至少返回一个不同的对象。
如果属性没有改变,您就不能看到属性的改变,但是返回的对象会改变
创建一个登录和注销函数,并让它们在用户登录或注销时发送一个事件。然后你就有了可以监视/观察的东西
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