2

的行为delay在 RxJs 7 中发生了变化。虽然我理解变化的原因,但它对于我用来模拟无线 API 延迟的演示项目很有用。在 RxJs 6 中,下面的代码只会在 5 秒延迟后记录到控制台,但在 7 中它会立即记录(7 不再等待空 observable 的延迟)。有没有办法在 RxJs 7 中复制以下内容?

import { EMPTY } from 'rxjs';
import { delay } from 'rxjs/operators';

EMPTY.pipe(delay(5000)).subscribe({
  complete: () => {
    console.log('complete');
  },
});

请参阅下面的 Stackblitz 示例。

RxJs 7(无延迟):https: //stackblitz.com/edit/rxjs-yx19nb?file= index.ts RxJS 6(5 秒延迟):https ://stackblitz.com/edit/rxjs-8rmhov?file=索引.ts

4

1 回答 1

2

只需使用计时器即可。

timer(5000).pipe(
  ignoreElements()
).subscribe(...);
于 2021-11-18T03:36:42.483 回答