代码之家  ›  专栏  ›  技术社区  ›  POV

如何使用观察器每秒向服务器发送请求?

  •  -1
  • POV  · 技术社区  · 6 年前

    把这段代码包装成计时器?

    this.requestMethods.CallNotaryRequest(data).subscribe((response: ICallNotaryResponse) => {
        this.requestMethods.CallNotaryRequest();// Call again after 1 second
    });
    

    或者有其他方法?

    我只需要在收到前一个的响应后,在1秒后执行相同的请求。

    我试过这样的方法:

    Observable.interval(3000).subscribe(i => {
      this.askToReadyRecordVideo().subscribe(res => {
      });
    });
    
    private askToReadyRecordVideo(): Observable<any> {
        return this.requestMethods.askToReadyRecordVideo({});
    }
    

    但是,当服务器返回错误时,仍然会发送请求

    1 回复  |  直到 6 年前
        1
  •  1
  •   Buggy    6 年前
    Observable.interval(3000)
        // the error from inner stream(inside `switchMap`) will propagate to outer stream. 
        // Outer stream will complete.
        .pipe(switchMap(()=>this.askToReadyRecordVideo()))
        .subscribe(console.log);
    
    private askToReadyRecordVideo(): Observable<any> {
        return this.requestMethods.askToReadyRecordVideo({});
    }