• 重试

    重试

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

    使用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. }