假设我有一个数组items
我知道我可以从这个数组中创建一个可以观察到的
Rx.Observable.fromArray(items)我如何创建一个懒惰的无限重复,从中观察到(即:重复的项目,只要他们是被要求的)?
试过
Rx.Observable.fromArray(items).repeat()但这并不是懒惰地执行,而是锁住了浏览器。
发布于 2014-09-18 08:23:43
你不能用一个可以观察到的东西来做这件事。您想要查看如何使用可枚举。
反应性扩展的可枚举性称为互动式扩展。
发布于 2016-01-28 20:47:13
我仍然是RxJS的新手,所以我提议的也许是完全的疯狂,但是能不能按照下面的工作来做些什么呢?
var items = [1, 2, 3, 4, 5];
var infiniteSource = Rx.Observable.from(items)
.map(function (x) { return Rx.Observable.return(x).delay(1000); })
.concatAll()
.doWhile(function(_) { return true; /* i.e. never end */ });
infiniteSource.subscribe(function(x) { console.log(x); });我这里有一个例子:http://ctrlplusb.jsbin.com/sihewo/edit?js,console
为了不淹没控制台,把延迟放进去了。在“直到不再需要的部分”方面,也许可以在doWhile中注入取消订阅或其他机制?
https://stackoverflow.com/questions/25893983
复制相似问题