mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			651 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			651 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # dezalgo
 | |
| 
 | |
| Contain async insanity so that the dark pony lord doesn't eat souls
 | |
| 
 | |
| See [this blog
 | |
| post](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony).
 | |
| 
 | |
| ## USAGE
 | |
| 
 | |
| Pass a callback to `dezalgo` and it will ensure that it is *always*
 | |
| called in a future tick, and never in this tick.
 | |
| 
 | |
| ```javascript
 | |
| var dz = require('dezalgo')
 | |
| 
 | |
| var cache = {}
 | |
| function maybeSync(arg, cb) {
 | |
|   cb = dz(cb)
 | |
| 
 | |
|   // this will actually defer to nextTick
 | |
|   if (cache[arg]) cb(null, cache[arg])
 | |
| 
 | |
|   fs.readFile(arg, function (er, data) {
 | |
|     // since this is *already* defered, it will call immediately
 | |
|     if (er) cb(er)
 | |
|     cb(null, cache[arg] = data)
 | |
|   })
 | |
| }
 | |
| ```
 |