2017-06-13 47 views

回答

1

retryWhen所做的一切是重新訂閱其源Observable。這意味着什麼取決於你。

例如,你可以使用Observable.defer()返回不同的可觀察每個重新訂閱:

let retries = 0; 

Observable.defer(() => { 
    if (retries++ === 3) { 
     return Observable.of('whatever'); 
    } 
    return this.http.get(...); 
    }) 
    .retryWhen((errors: Observable) => errors) 
    .subscribe(...); 

同樣可以使用例如Observable.create()