“窗口”在RxJS中意味着什么?

时间:2015-03-06 14:16:27

标签: rxjs

我听说过buffer。好像window类似于缓冲区。 他们之间有什么区别?为什么它被称为“窗口”??

1 个答案:

答案 0 :(得分:3)

缓冲区是Window的专业化。

窗口会立即通知您新窗口,以及观察将在该窗口中显示的值的observable。

相比之下,Buffer不会立即通知您新窗口。相反,它在内部收集窗口中的项目。窗口完成后,Buffer将发送一个包含窗口中所有项目的数组的通知。

从概念上讲,您可以使用buffer来编写window,如下所示:

Rx.Observable.prototype.buffer = function () {
    return this.window
        .apply(this, arguments)
        .flatMap(function (w) { return w.toArray(); });
};

至于为什么它被称为“窗口”...除非Rx作者回答,否则任何答案都将纯粹是推测性的。 窗口是一个术语,通常用于表示许多学科的时间间隔,包括软件开发和信号处理。

相关问题