0
嗨,我开始RxJS,我有下一个问题的解决办法,但我不喜欢它,希望你能提供更好的解决方案:RxJS如何在可观察对象之间切换和暂停?
试想一下,我们有2个数据流,我们要切换:
- 请求
- 超时
然后,我们要在它们之间进行切换,但一当其他有一个事件重新开始,这已暂停。例如。我们在成功时做出请求,我们做出超时,完成请求时,完成超时等等。
在我的解决方案,我用模拟的时间间隔要求,我用“可暂停()”,但我不喜欢这个解决方案的可扩展性:
import Rx from 'rx';
const requestPauser = new Rx.Subject();
const requestStream = Rx.Observable.interval(500).pausable(requestPauser);
const intervalPauser = new Rx.Subject();
const intervalStream = Rx.Observable.interval(500).pausable(intervalPauser);
requestStream.subscribe(function(){
requestStream.pause();
intervalStream.resume();
console.log("request");
});
intervalStream.subscribe(function(){
requestStream.resume();
intervalStream.pause();
console.log("interval");
});
requestStream.resume();
如何RxJS专家将解决这个问题?
感谢苏拉杰,有了这个我有一个延迟,但我怎么可以然后创建一个循环,两者都重复? const responseStream = Rx.Observable.fromPromise($ .getJSON('https://api.github.com/users')); ()=> {console.log(1);}); (()=> {console_log(2); }); –
对不起,这是错误的,因为第二次订阅从开始执行,并且必须在第一次完成后执行。 –
好..我的坏..应该仔细看看.. –