Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

allora

Build Status

NPM version NPM downloads MIT License

Promisify everything in less than ~50 lines. It can be used to implement promises on any JavaScript object.

Examples

Basic

Or simply:

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

Example in Node:

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

Example in browser:

const w = allora(window)
const p1 = w.setTimeout(500)
const p2 = w.setTimeout(5000)
const p3 = w.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 w = allora(window)
const timer = w.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())

Event streams

Allora does not allow you to do event streams since Promises could be only once fulfilled.

const w = allora(window)
const polling = w.setInterval(3000)
polling.then(() => console.log('This will be called only once!!!'))

However my friend @nilssolanki made stroxy to provide an elegant streaming api to any javascript object. I would highly recommend you stroxy if you are looking a lightweight events streaming library similar to allora.

"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

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
You can’t perform that action at this time.