提交 c826496a 编写于 作者: J Joao Moreno

event: support initial buffer

上级 906a01d0
......@@ -375,8 +375,9 @@ export function stopwatch<T>(event: Event<T>): Event<number> {
* // 4
* ```
*/
export function buffer<T>(event: Event<T>, nextTick = false): Event<T> {
let buffer: T[] = [];
export function buffer<T>(event: Event<T>, nextTick = false, buffer: T[] = []): Event<T> {
buffer = buffer.slice();
let listener = event(e => {
if (buffer) {
buffer.push(e);
......
......@@ -402,6 +402,21 @@ suite('Event utils', () => {
assert.deepEqual(result, [1,2,3,4]);
});
});
test('should fire initial buffer events', () => {
const result = [];
const emitter = new Emitter<number>();
const event = emitter.event;
const bufferedEvent = buffer(event, false, [-2, -1, 0]);
emitter.fire(1);
emitter.fire(2);
emitter.fire(3);
assert.deepEqual(result, []);
bufferedEvent(num => result.push(num));
assert.deepEqual(result, [-2,-1,0,1,2,3]);
});
});
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册