Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何观察对象返回的属性更改';s法_Javascript_Web_Reactive Programming_Observable_Watch - Fatal编程技术网

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