Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rxjs在继续之前等待上一次间隔请求执行_Javascript_Angular_Typescript_Rxjs - Fatal编程技术网

Javascript Rxjs在继续之前等待上一次间隔请求执行

Javascript Rxjs在继续之前等待上一次间隔请求执行,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,用例:每3分钟调用一个端点,该端点将通过应用程序更新特定服务的状态 我当前的代码: 间隔(180000) .订阅(()=>this.doRequest .管道(捕捉错误(()=>{ this.applicationFlag=false; 返回空; })) .subscribe(result=>this.applicationFlag=result))当一个订阅在另一个订阅中时,无法通知外链内链已完成。您必须重新构造链并使用操作符,如concatMap、mergeMap或switchMap。例如

用例:每3分钟调用一个端点,该端点将通过应用程序更新特定服务的状态

我当前的代码:

间隔(180000)
.订阅(()=>this.doRequest
.管道(捕捉错误(()=>{
this.applicationFlag=false;
返回空;
}))

.subscribe(result=>this.applicationFlag=result))当一个
订阅
在另一个
订阅
中时,无法通知外链内链已完成。您必须重新构造链并使用操作符,如
concatMap
mergeMap
switchMap
。例如,如下所示:

interval(180000)
  .pipe(
    concatMap(() => this.doRequest.pipe(
      catchError(() => {
        this.applicationFlag = false;
        return EMPTY;
      }),
    ),
  )
  .subscribe();


当一个
subscribe
位于另一个
subscribe
内部时,无法通知外链内链已完成。您必须重新构造链并使用操作符,如
concatMap
mergeMap
switchMap
。例如,如下所示:

interval(180000)
  .pipe(
    concatMap(() => this.doRequest.pipe(
      catchError(() => {
        this.applicationFlag = false;
        return EMPTY;
      }),
    ),
  )
  .subscribe();


“有时上一个间隔请求尚未完成”=>这意味着您的请求需要3分钟才能得到答复?向管道添加exhaustMap()是否有帮助?只要当前请求不存在,它就会忽略新请求finished@OliverGebert不是真的,这只是配置表单“有时上一个间隔请求尚未完成”中指定的时间范围=>这意味着您的请求需要3分钟才能得到响应?将exhaustMap()添加到管道是否有帮助?只要当前请求不存在,它就会忽略新请求finished@OliverGebert不是真的,它只是配置表单中指定的时间范围