Angular 4预定表格自动保存

ale*_*sei 13 javascript observable rxjs angular

我正在尝试在Angular 4中实现表单数据自动保存.它应该像这样工作:

  • 用户更改表单中的一些数据 - >调用一些对DB的保存请求.让我们假设一些计时器在这里启动2s.
  • 在上一次保存请求的2s期间,所有更改都不会调用任何请求(以减少数据库负载),但会触发另一个保存请求,然后2s计时器将到期.
  • 如果此时没有启动计时器,则应立即调用保存请求.

我假设Observable,SubjectScheduler从RxJS会帮我,但我完全新的吧.您能否提出实现上述功能的最佳方法?

mar*_*tin 16

您可以valueChangesFormGroupauditTime运算符链接的对象订阅属性:

this.form.valueChanges.auditTime(2000).subscribe(formData => /* save to DB */)
Run Code Online (Sandbox Code Playgroud)

也许还看看throttleTimedebounceTime运营商.


jku*_*anc 10

对于Angular 6,您可能必须使用管道。

this.form.valueChanges.pipe(auditTime(2000)).subscribe(formData => /* save to DB */)
Run Code Online (Sandbox Code Playgroud)