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 Update description 8 years ago
src data => val 8 years ago
test Test Promise chain helper passes value through 8 years ago
.gitignore Extract domLoaded from Onionite 8 years ago
.travis.yml Integrate AVA with Travis and Coveralls 8 years ago
LICENSE Extract domLoaded from Onionite 8 years ago
README.md Update description 8 years ago
package.json Update description 8 years ago

README.md

when-dom-ready

$(document).ready() for the 21st century

Build Status Coverage Status

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