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.
Luke Childs
ababb08973
|
8 years ago | |
---|---|---|
src | 8 years ago | |
test | 8 years ago | |
.gitignore | 8 years ago | |
.travis.yml | 8 years ago | |
LICENSE | 8 years ago | |
README.md | 8 years ago | |
package.json | 8 years ago |
README.md
when-dom-ready
$(document).ready() for the 21st century
Returns a Promise for cleaner usage, provides a Promise chain helper function and can also be used as a pure function.
Install
npm install --save when-dom-ready
Usage
whenDomReady()
import whenDomReady from 'when-dom-ready';
whenDomReady().then(() => console.log('DOM is ready yo!'));
You can still use callbacks if you want to:
whenDomReady(() => console.log('DOM is ready yo!'));
whenDomReady.resume()
There is also a little helper function that will pause the execution of a Promise chain and then resume with the last value once the DOM is ready.
This allows you to specify complex async control flow in simple readable code:
fetch('/my-badass-api.json')
.then(getSomeProcessingDoneWhileWaitingForDom)
.then(whenDomReady.resume())
.then(injectDataIntoDom);
Pure usage
You can make the function pure by passing in a document
object. This is really useful for tests and mocking environments.
For example this works in Node.js:
import jsdom from 'jsdom';
import whenDomReady from 'when-dom-ready';
const doc = jsdom.jsdom('').defaultView.document;
whenDomReady(doc).then(() => console.log('DOM is ready yo!'));
Again, you can use the callback version as a pure function too:
whenDomReady(() => console.log('DOM is ready yo!'), doc);
The helper too:
//...
.then(whenDomReady.resume(doc))
License
MIT © Luke Childs