35 lines
		
	
	
		
			782 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			782 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # promise-inflight
 | |
| 
 | |
| One promise for multiple requests in flight to avoid async duplication
 | |
| 
 | |
| ## USAGE
 | |
| 
 | |
| ```javascript
 | |
| const inflight = require('promise-inflight')
 | |
| 
 | |
| // some request that does some stuff
 | |
| function req(key) {
 | |
|   // key is any random string.  like a url or filename or whatever.
 | |
|   return inflight(key, () => {
 | |
|     // this is where you'd fetch the url or whatever
 | |
|     return Promise.delay(100)
 | |
|   })
 | |
| }
 | |
| 
 | |
| // only assigns a single setTimeout
 | |
| // when it dings, all thens get called with the same result.  (There's only
 | |
| // one underlying promise.)
 | |
| req('foo').then(…)
 | |
| req('foo').then(…)
 | |
| req('foo').then(…)
 | |
| req('foo').then(…)
 | |
| ```
 | |
| 
 | |
| ## SEE ALSO
 | |
| 
 | |
| * [inflight](https://npmjs.com/package/inflight) - For the callback based function on which this is based.
 | |
| 
 | |
| ## STILL NEEDS
 | |
| 
 | |
| Tests!
 |