2017-10-24 7 views

答えて

2
  • はに耳を傾け、変更に反応するには、イベントハンドラを必要とします。角度では、観測は、あなたの他のイベントがこれらにonline/offline events

    online$ = Observable.fromEvent(window, 'online'); 
    offline$ = Observable.fromEvent(window.'offline'); 
    

チェーンに依存している、

  • はアプリがオンラインになるかオフラインになるが通知されるように最適です:

    online$.subscribe(e => this.syncWithServer()); 
    

    また、navigator.onLineについてのこの記事を参照してください。ブラウザはこのイベントを一様に実装していないことに注意してください。場合によっては、「オンライン」とは、ブラウザがインターネットではなくローカルネットワークに接続されていることを意味します。より信頼性の高い情報を得るには、イベントが発生したときにリモートサーバーにpingを試行してテストする必要があります。 pingServerがリモート要求を行うと、そうでない場合は、要求が成功したときtrueを発する観察可能な、またはfalseを返します

    online$ = Observable.fromEvent(window, 'online') 
            .switchMap(e => this.pingServer()).filter(e => e); 
    
    offline$ = Observable.fromEvent(window.'offline') 
            .switchMap(e => this.pingServer()).filter(e => !e); 
    

  • 関連する問題