gpt4 book ai didi

angular - 在一个时间间隔内从 Observable.from 发出值

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

我有一个项目数组,我想在一个时间间隔内从 Observable 发出。

我正在使用 Angular 2 中包含的 rxjs 库。

这是我目前的解决方案,但我觉得我没有找到一种响应式(Reactive)方法。该解决方案还在数组耗尽后继续产生值,但它应该真正完成。有什么方法可以用 Observable.interval 驱动 Observable.from 吗?:

var array = [1,2,3];

var source = Rx.Observable
.interval(500 /* ms */)
.map(function() {
return array.pop();
});

var subscription = source.subscribe(
function (x) {
console.log('Next:', x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});

输出:

"Next:"
3
"Next:"
2
"Next:"
1
"Next:"
undefined

最佳答案

对于像这样简单的事情,你所做的很好,除了我宁愿使用 interval 给出的索引来读取给定索引处的数组,而不是使用 pop 修改原始数组(与响应式(Reactive)编程混合有点奇怪,不是吗=)!)

我给你提出了另一个建议,这样你可能会发现其他运营商:

const { Observable } = Rx

const myArray = [1, 2, 3]

const interval$ = Observable.interval(500)

Observable
.from(myArray)
.zip(interval$)
.do(([x]) => console.log(x))
.subscribe(
() => {},
() => {},
() => console.log('Stream ended !')
)
<script src="https://unpkg.com/rxjs@5.1.1/bundles/Rx.min.js"></script>

关于angular - 在一个时间间隔内从 Observable.from 发出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42864815/

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