最近在开发上传进度的时候需要一个模拟数据:模拟间隔发送1-100之间的值。此需要在RxJS的支持下可以轻松的实现。代码如下:
let i = 0;
interval(100).pipe(
take(100),
map(() => ++i)
).subscribe(data => console.log(data));
控制台如下:
最终的上传进度效果如下:
简单解释下上述代码: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));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。