30 lines
		
	
	
		
			974 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			974 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';
 | |
| export function buffer(closingNotifier) {
 | |
|     return function bufferOperatorFunction(source) {
 | |
|         return source.lift(new BufferOperator(closingNotifier));
 | |
|     };
 | |
| }
 | |
| class BufferOperator {
 | |
|     constructor(closingNotifier) {
 | |
|         this.closingNotifier = closingNotifier;
 | |
|     }
 | |
|     call(subscriber, source) {
 | |
|         return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
 | |
|     }
 | |
| }
 | |
| class BufferSubscriber extends SimpleOuterSubscriber {
 | |
|     constructor(destination, closingNotifier) {
 | |
|         super(destination);
 | |
|         this.buffer = [];
 | |
|         this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));
 | |
|     }
 | |
|     _next(value) {
 | |
|         this.buffer.push(value);
 | |
|     }
 | |
|     notifyNext() {
 | |
|         const buffer = this.buffer;
 | |
|         this.buffer = [];
 | |
|         this.destination.next(buffer);
 | |
|     }
 | |
| }
 | |
| //# sourceMappingURL=buffer.js.map
 | 
