等待订阅以角度8完成

时间:2020-02-11 07:29:59

标签: javascript angular typescript rxjs

我有一个组件,要在onInit的时间间隔内调用订阅:

  ngOnInit() {    
    interval(5000).pipe(
      takeWhile(() => this.isAlive))
      .subscribe(() => {
        this.initialization();
      });    
   }

initialization() {
    this.subscriptions.add(
      this.someService.someMethod().subscribe(
        data => {
          this.myData = Object.assign({}, data);
          this.var1 = this.myData.x; // Using var1 in HTML to bind to a text element
          this.var2 = this.myData.y; // Using var2 in HTML to bind to a text element
        }
      )
    );
  }

var1Change(value) {
    // Check if my code is in observable, once it is finish, execute save immediately. How to acheive it?
    this.var1 = value;
    this.myData.x = value;
    this.callSave();
}

callSave() {
    // Method to consume api to save data to file
}

因此每隔5秒钟,只要有数据更新,我的UI就会更新一次。
我可以从UI进行更改,也可以通过使用API​​来将数据保存到文件中,并且在发生模型更改时进行保存,然后仅进行保存。没有保存按钮。
所以我想要什么如果我的代码在可观察范围之内,我想等待保存发生
请仅以现有代码帮助我,因为我必须以这种方式使用间隔和保存呼叫

使用angular 8.2和rxjs 6.4

1 个答案:

答案 0 :(得分:0)

我的理解是,如果正在进行更新,则要在保存之前等待。如果是这种情况,那么您可以执行以下操作。

...
"properties": {
  "time": {
    "type": "string",
    "format": "date-time"
  }
}
...