You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.7 KiB
						
					
					
				| <h1 align="center">Welcome to atomic-sleep ⏱️</h1>
 | |
| <p>
 | |
|   <img alt="Version" src="https://img.shields.io/badge/version-1.0.0-blue.svg?cacheSeconds=2592000" />
 | |
|   <a href="#" target="_blank">
 | |
|     <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" />
 | |
|   </a>
 | |
|   <a href="https://twitter.com/davidmarkclem" target="_blank">
 | |
|     <img alt="Twitter: davidmarkclem" src="https://img.shields.io/twitter/follow/davidmarkclem.svg?style=social" />
 | |
|   </a>
 | |
| </p>
 | |
| 
 | |
| > Zero CPU overhead, zero dependency, true event-loop blocking sleep
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ```js
 | |
| const sleep = require('atomic-sleep')
 | |
| 
 | |
| console.time('sleep')
 | |
| setTimeout(() => { console.timeEnd('sleep') }, 100) 
 | |
| sleep(1000)
 | |
| ```
 | |
| 
 | |
| The `console.time` will report a time of just over 1000ms despite the `setTimeout`
 | |
| being 100ms. This is because the event loop is paused for 1000ms and the setTimeout
 | |
| fires immediately after the event loop is no longer blocked (as more than 100ms have passed).
 | |
| 
 | |
| ## Install
 | |
| 
 | |
| ```sh
 | |
| npm install
 | |
| ```
 | |
| 
 | |
| ## Run tests
 | |
| 
 | |
| ```sh
 | |
| npm test
 | |
| ```
 | |
| 
 | |
| ## Support
 | |
| 
 | |
| Node and Browser versions that support both `SharedArrayBuffer` and `Atomics` will have (virtually) zero CPU overhead sleep. 
 | |
| 
 | |
| For Node, Atomic Sleep can provide zero CPU overhead sleep from Node 8 and up.
 | |
| 
 | |
| For browser support see https://caniuse.com/#feat=sharedarraybuffer and https://caniuse.com/#feat=mdn-javascript_builtins_atomics.
 | |
| 
 | |
| 
 | |
| For older Node versions and olders browsers we fall back to blocking the event loop in a way that will cause a CPU spike. 
 | |
| 
 | |
| 
 | |
| 
 | |
| ## Author
 | |
| 
 | |
| 👤 **David Mark Clements (@davidmarkclem)**
 | |
| 
 | |
| * Twitter: [@davidmarkclem](https://twitter.com/davidmarkclem)
 | |
| * Github: [@davidmarkclements](https://github.com/davidmarkclements)
 |