Skip to content

rafagarcia/allora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

allora

Build Status

NPM version NPM downloads MIT License

Promisify everything in less tha ~50 lines It can be used to use promises on any javascript object.

Examples

Basic

Or simply:

const myWindow = allora(window)
myWindow.onload.then(() => alert('I am ready!'))

Example in Node:

const allora = require('allora')
const myGlobal = allora(global)
Promise.race([
  myGlobal.setImmediate(),
  myGlobal.setTimeout(200),
  myGlobal.setTimeout(400)
]).then(() => done())

Example in browser:

const myWindow = allora(window)
const p1 = myWindow.setTimeout(500)
const p2 = myWindow.setTimeout(5000)
const p3 = myWindow.requestAnimationFrame()

p1.then(() => alert('I am ready'))
p2.then(() => alert('I am late'))
p3.then(() => alert('frame'))

Promise.all([p1, p2, p3]).then(() => alert('We are all done!'))

Clear timers

Thanks to this pull request it's now also possible to clear the timers

const myWindow = allora(window)
const timer = myWindow.setTimeout(3000)
timer.then(_ => console.log('time over'))
// the valueOf call should be not needed here
// but if you are on node, you will need it https://github.com/nodejs/node/issues/7792
clearTimeout(timer.valueOf())

"allora" meaning

"allora" is the Italian 🇮🇹 word for then

About

Promisify using es6 Proxies every javascript API with less than 50 lines of code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%