3

最近在开发上传进度的时候需要一个模拟数据:模拟间隔发送1-100之间的值。此需要在RxJS的支持下可以轻松的实现。代码如下:

let i = 0;
interval(100).pipe(
  take(100),
  map(() => ++i)
).subscribe(data => console.log(data));

控制台如下:
image.png

最终的上传进度效果如下:
image.png

简单解释下上述代码:
interval(100)为RxJS的方法,表示间隔100ms发送一次数据,take(100)的作用是取前100个数据,从而达到了100ms发送一次数据,共发送100次的目的。
map()操作符用于数据转换,最终将++i的值发送给下游,subscribe订阅到的便是++i的值。

如果你仅仅是在当前方法中使用,当然也可以省略map操作符:

let i = 0;
interval(100).pipe(
  take(100))
).subscribe(() => console.log(++i));

潘杰
3.1k 声望238 粉丝

引用和评论

0 条评论