私はAngular 2 CLIとFirebaseを使用してWebソリューションを継承し、コードをクリーンアップしようとしています。これはシンプルなゲームで、このコードを使用してユーザーを同期させます。角度2 /プロセス状態を追跡するための観測可能なコードパターン
これは、ゲームの状態を追跡するために、ユーザー側のコード...
ngDoCheck(){
if(this.subGame['game_state'] == 'question'){
this.setAnswerStart();
}else if(this.subGame['game_state'] == "answer"){
this.updateGame();
}else if(this.subGame['game_state'] == 'leaderboard'){
this.startTime = null;
console.log("Question timer was reset to ZERO");
}
}
副ゲームオブジェクトがFirebaseリアルタイムDBへのサブスクリプションで、ゲームはにgame_stateプロパティを設定されていますすべてのユーザーを同期させてください。
ゲームは、このようなクイズプロセスを歩く:
- 質問:回答を表示
- トップ10::ショー スコア
- [REPEAT]
問題は、ngDoCheckフックを使用して状態を追跡しているため、いつでもこれらのイベントが発生しているためですeゲームオブジェクトの変更。 setAnswerStartメソッドは、ユーザーが質問を表示する時刻を追跡しますが、このコードでは、ユーザーがDBに応答を送信したときにいつでも起動します。
私はこのような状況プロセスを追跡する必要があるときに、このような状態オブジェクトを追跡するためのコードパターンを私がSOに提示することを望んでいます。
:私はイベントとは、例えば、