我有一项服务请求一些数据并返回Observable
,我使用repeatWhen
在延迟时间后连续重播此请求:
this.delay = 2000;
var observ = this.myService.getData()
.repeatWhen(completed => completed.delay(this.delay));
this.mySubscription = observ.subscribe(val => this.handleResponse(val));
我希望能够动态修改delay
的值,让我们在handleResponse
方法中说出来。我怎样才能做到这一点?
例如(伪代码):
private handleResponse(val: boolean) {
if(val)
this.delay += 2000;
}
答案 0 :(得分:1)
在
.repeatWhen(completed => completed.delay(this.delay));
您的观察结果已经更改,并从this.delay
获得了它的价值。之后,如果您要更改this.delay
,它将永远不会影响上述repeatWhen
。已创建的observable的初始值为delay
, 不会每次都 ,并从this.delay
获取值。