Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjs:创建一个可观察对象,它是另一个可观察对象的延迟偏移量_Rxjs_Reactive Programming - Fatal编程技术网

Rxjs:创建一个可观察对象,它是另一个可观察对象的延迟偏移量

Rxjs:创建一个可观察对象,它是另一个可观察对象的延迟偏移量,rxjs,reactive-programming,Rxjs,Reactive Programming,有没有一种简单的方法可以创建一个与另一个偏移量相等的可观测值 例如,假设Observable1发射[1,2,3,4,5] 我如何从ObservalE1创建ObservalE2,使ObservalE2发射[1,2,3,4](因此,ObservalE1发射1时它不发射任何东西,ObservalE1发射2时它发射1,以此类推) Obs1启动 -------1----2----3----4----5---> Obs2启动 -----------------1-----------------2-----

有没有一种简单的方法可以创建一个与另一个偏移量相等的可观测值

例如,假设Observable1发射[1,2,3,4,5]

我如何从ObservalE1创建ObservalE2,使ObservalE2发射[1,2,3,4](因此,ObservalE1发射1时它不发射任何东西,ObservalE1发射2时它发射1,以此类推)

Obs1启动 -------1----2----3----4----5--->

Obs2启动 -----------------1-----------------2-----------------3-----------------4---------------->

谢谢

您可以使用and运算符执行所需操作:

const source=新Rx.Subject();
const offset=source.bufferCount(2,1.map)(值=>values[0]);
订阅(value=>console.log(`source=${value}`));
subscribe(value=>console.log(`offset=${value}`));
来源:下一(1);
资料来源:下一(2);
资料来源:下一(3);
资料来源:下一个(4);
资料来源:下一个(5)
。作为控制台包装{最大高度:100%!重要;顶部:0;}

请澄清。当Obs2发出任何东西时,产生的可观测值是否应该从Obs1发出最新的值?或者Obs2发出的值是否意味着什么,如果是,是什么?如果Obs2发出
[4,3,2,1]
,那么期望的行为是什么?我不会尝试基于Obs1和Obs2创建第三个可观察对象。相反,我试图从Obs1创建Obs2,这样Obs2总是“落后于”Obs1的一个值。这有道理吗?啊!我不知道BufferCount还有第二个参数,让我们指定一个重叠的缓冲区。非常感谢。更新了答案,提到“两两”
——我已经忘记了。