首页 > 解决方案 > Angular 5调用函数并在一段时间后退出

问题描述

我被阻止如何实现这个规范:

我调用一个方法 update() :

this.contratService.update(lineSelected.id).subscribe(response => {
   if (response.status === 201) {
       ....
   }
}, error => {
   console.log('Error in contrat update');
});

我想在更新之前等待 30 秒以显示另一个错误。

如何实现此功能?

注意:我理解setTimeout,在一定时间后执行指令,注意在调用方法后等待一定时间

谢谢

标签: angulartimeoutdelay

解决方案


您可以使用;timeout()的管道运算符rxjs

import { timeout } from 'rxjs/operators';
...


this.contratService.update(lineSelected.id)
  .pipe(
     timeout(30000)
   )
  .subscribe(response => {
     if (response.status === 201) {
         ....
     }
  }, error => {
   console.log('Error in contrat update');
});

参考:https ://rxjs-dev.firebaseapp.com/api/operators/timeout


推荐阅读