我想在订阅后运行我的部分逻辑,并有额外的延迟(使用 RxJS)。我知道 Finalize 运算符,我可以将其与管道一起使用,但这会导致我的可观察对象完成后立即执行。
有没有办法在运行 Finalize 之前创建延迟?
附加信息:
我正在订阅服务器调用,这意味着我只期望一个值。
不,无法在
finalize
您可以在
timer
这不是反模式,而是安全操作。
看这个例子:
of([1,2,3]) .pipe( finalize(() => { timer(1000).subscribe(() => {/* 1s delayed execution */}) }) ) .subscribe(value => { console.log(value); })
只需在管道内使用延迟运算符即可。
Observable.pipe(deplay(200))...
资源:https://rxjs-dev.firebaseapp.com/api/operators/delay