重试

有时你可能想要重试失败的请求。例如,如果用户离线,你可能需要每隔一段时间或不停地重试。

使用RxJS retry操作符。 它接受一个retryCount参数。 如果没有返回结果,它将无限期重试序列。

请注意,在重试阶段不会调用错误回调。 如果请求失败,它将被重试,并且只有在所有重试尝试失败之后,流才会抛出错误。

  1. import { HttpClient } from "@angular/common/http";
  2. import { Injectable } from '@angular/core';
  3. import { Observable } from 'rxjs/Rx';
  4. @Injectable()
  5. export class SearchService {
  6. constructor(private http: HttpClient) {}
  7. search(term: string) {
  8. let tryCount = 0;
  9. return this.http.get('https://api.spotify.com/v1/dsds?q=' + term + '&type=artist')
  10. .map((response) => response.json())
  11. .retry(3);
  12. }
  13. }