gpt4 book ai didi

javascript - 如何零时间获取 RxJS Observable 事件?

转载 作者:行者123 更新时间:2023-11-29 10:06:00 25 4
gpt4 key购买 nike

我正在将一个 Observable 的所有事件收集到一个 data 数组中:

const obs$ = Rx.Observable
.interval(500)
.take(4);

let data = [];
const start = performance.now();

obs$.subscribe(
value => {
data.push({
time: performance.now() - start,
data: value
});
},
() => {},
() => {
console.log(JSON.stringify(data, null, 2));
}
);
<script src="https://unpkg.com/rxjs@5.2.0/bundles/Rx.js"></script>

是否有可能“预见 future ”并得到相同的data数组无需等待2秒

澄清一下,我试图找到一种方法,以某种方式用自定义计时器/调度程序包装给定的 Observable(上面示例中的 obs$),以便我可以立即获取事件。

最佳答案

您可以创建 VirtualTimeScheduler 的实例并且可以在对 interval 的调用中指定它。

如果您在订阅后在调度程序上调用 flush,事件将立即发出:

const scheduler = new Rx.VirtualTimeScheduler();

const obs$ = Rx.Observable
.interval(500, scheduler)
.take(4);

let data = [];
const start = scheduler.now();

obs$.subscribe(
value => {
data.push({
time: scheduler.now() - start,
data: value
});
},
() => {},
() => {
console.log(JSON.stringify(data, null, 2));
}
);

scheduler.flush();
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://unpkg.com/rxjs@5.2.0/bundles/Rx.js"></script>

关于javascript - 如何零时间获取 RxJS Observable 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107336/

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