2016-11-01 14 views
0

私は角度2を学習し始めました。インターネットがダウンしているときやサーバーがダウンしているときにretry()機能を実装しようとしました。現在、私のインターネットがダウンしているときにAPIコールが失敗し、ローダーが無期限に実行されています。だから、私はretry()の機能を実装しようとしています。Angular2:Rx.Observable.retry()の機能を実装する

Component.ts:

import { Component } from '@angular/core'; 
import { ItemService } from './item.service'; 
@Component({ 
    selector: 'itemspage', 
    templateUrl: 'items.component.html', 
    providers: [ItemService] 
}) 
export class ItemComponent implements OnInit { 
    constructor(private itemService: ItemService) { } 
    items: string[] = []; 
    loader: boolean = false; 
    ngOnInit() { 
     this.loader = true; 
     this.itemService.loadItems() 
     .subscribe((resp) => { 
      this.items = resp.data; 
      this.loader = false; 
     }); 
    } 
} 

Service.ts:

import { Injectable } from '@angular/core'; 
import { Http } from '@angular/http'; 

import 'rxjs/add/operator/map'; 

@Injectable() 
export class ItemService { 

    constructor (private http: Http) {} 

    loadItems() { 
    return this.http.get('localhost:8080/****') 
     .map(res => res.json()); 
    } 
} 

を、私はこの記事が見つかりました:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/retry.md をしかし、私の場合に実装する方法がわかりません。助けて。

+0

あなたはあなたのコード内の任意の場所に再試行は使用しないでください。 – micronyks

+0

ええ、私はどこで使うべきかわかりません。私はcomponent.tsで試しましたが、エラーが発生しました。だから私はそれを取り除いた。 – NNR

+0

これはObservable演算子です。だからあなたはObservableでそれを呼びます。 get()の後、またはmap()の後、またはloadItems()呼び出しの後。 –

答えて

0
loadItems() { 
    return this.http.get('localhost:8080/****') 
    .retry(5)         //<<<@@@@@ use it here 
    .map(res => res.json()); 
} 

read more here...