60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # flush-write-stream
 | |
| 
 | |
| A write stream constructor that supports a flush function that is called before `finish` is emitted
 | |
| 
 | |
| ```
 | |
| npm install flush-write-stream
 | |
| ```
 | |
| 
 | |
| [](http://travis-ci.org/mafintosh/flush-write-stream)
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ``` js
 | |
| var writer = require('flush-write-stream')
 | |
| 
 | |
| var ws = writer(write, flush)
 | |
| 
 | |
| ws.on('finish', function () {
 | |
|   console.log('finished')
 | |
| })
 | |
| 
 | |
| ws.write('hello')
 | |
| ws.write('world')
 | |
| ws.end()
 | |
| 
 | |
| function write (data, enc, cb) {
 | |
|   // i am your normal ._write method
 | |
|   console.log('writing', data.toString())
 | |
|   cb()
 | |
| }
 | |
| 
 | |
| function flush (cb) {
 | |
|   // i am called before finish is emitted
 | |
|   setTimeout(cb, 1000) // wait 1 sec
 | |
| }
 | |
| ```
 | |
| 
 | |
| If you run the above it will produce the following output
 | |
| 
 | |
| ```
 | |
| writing hello
 | |
| writing world
 | |
| (nothing happens for 1 sec)
 | |
| finished
 | |
| ```
 | |
| 
 | |
| ## API
 | |
| 
 | |
| #### `var ws = writer([options], write, [flush])`
 | |
| 
 | |
| Create a new writable stream. Options are forwarded to the stream constructor.
 | |
| 
 | |
| #### `var ws = writer.obj([options], write, [flush])`
 | |
| 
 | |
| Same as the above except `objectMode` is set to `true` per default.
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT
 |