如何使 rxjs 非 ui 阻塞?

马尔加德

我有一系列项目。该数组中的每个项目代表我的 html 表中的一行,并在项目数组更改时自动呈现。

我现在想rxjs在单击按钮时将一些项目添加到该表中,因此我执行了以下操作:

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

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

卡特

如果您不想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});
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章