gpt4 book ai didi

angular2 : How to debounce Observable. combineLatest 调用?

转载 作者:太空狗 更新时间:2023-10-29 17:25:13 25 4
gpt4 key购买 nike

我的 angular2 应用程序遇到了性能问题,因为我有一个很大的 Observable.combineLatest(),其中有许多输入变化很快,我想消除回调调用的抖动:

myData$ = Observable.combineLatest(
this.store.let(fromRoot.getFoo),
this.store.let(fromRoot.getBar),
this.store.let(fromRoot.getFoobar),
this.store.let(fromRoot.getBarfoo),
(foo, bar, foobar, barfoo) => {
...
});

事后调用 debounce,例如Observable.combineLatest(...).debounceTime(300) 是无用的,因为 CPU 密集型任务发生在仍然经常调用的 combineLatest 回调中。

我想我必须结合另一个 Observable,但我不确定该怎么做,有什么想法吗?

最佳答案

combineLatest 方法的project 函数本质上是一个map 运算符。你可以重新安排这样的事情:

myData$ = Observable.combineLatest(
this.store.let(fromRoot.getFoo),
this.store.let(fromRoot.getBar),
this.store.let(fromRoot.getFoobar),
this.store.let(fromRoot.getBarfoo)
)
.debounceTime(300)
.map(([foo, bar, foobar, barfoo]) => {
...
});

关于angular2 : How to debounce Observable. combineLatest 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41152363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com