2016-10-01 2 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()は呼び出されるたびに別のオブジェクトを返し、ユーザーごとに少なくとも異なるオブジェクトを返すことを確信しています。 プロパティが変更されず、返されたオブジェクトが変更された場合、プロパティ変更を見ることはできません。

ログインとログアウト機能を作成し、ユーザーがログインまたはログアウトしたときにイベントをディスパッチさせます。それからあなたはあなたが監視/観察できる何かを持っています。

関連する問題