如何使rxjs非ui阻塞?

时间:2018-03-07 15:12:06

标签: rxjs

我有一系列物品。该数组中的每个项目代表我的html表中的一行,并在项目数组发生变化时自动呈现。

我现在想用const delay = ms => { return new Promise(resolve => setTimeout(resolve, ms)); }; 在我点击按钮时向该表添加一些项目,所以我做了以下事情:

rxjs

但这会冻结ui,直到每个元素都被推入数组。 我如何实现它以便ui不冻结并仍然响应用户输入?

1 个答案:

答案 0 :(得分:1)

如果您不希望range同步发出整个值范围,则可以指定scheduler

例如:

Rx.Observable
    .fromEvent(this.$.button, 'click')
    .switchMap(() => Rx.Observable.range(0, 10000, Rx.Scheduler.asap))
    .subscribe((x) => {
        this.push('items', {id: '' + x, description: '' + x});
    });