promiz

A proper compact promise (promises/A+ spec compliant) library.

Usage no npm install needed!

<script type="module">
  import promiz from 'https://cdn.skypack.dev/promiz';
</script>

README

Promiz.js">

Promises/A+ logo A polyfill for ES6-style Promises in 913 bytes (gzip) (v0.3 [Blog Post](http://www.zolmeister.com/2014/01/promiz-micro-promises-in-228-bytes.html)) ~~([How it was built](http://www.zolmeister.com/2013/07/promizjs.html))~~ ![build-status](https://travis-ci.org/Zolmeister/promiz.png?branch=master) ## Install ```bash # Node.js npm install promiz --save

Bower

bower install promiz --save

```html
<!-- Browser -->
<script src='promiz.js'></script>

Promiz - 913 bytes (min + gzip) - as reported by uglify.js

Promiz

HTML5rocks tutorial

Constructor - new Promise(Function<resolve, reject>)

var promise = new Promise(function (resolve, reject) {
  if ('itIsRaining' && Math.random() * 10 === 2) {
    reject(new Error('reason'))
  } else {
    resolve(42)
  }
})

Promise.reject({reason})

promise = Promise.reject(new Error('reason'))

Promise.resolve({value})

promise = Promise.resolve(42)

promise.then({Function}, {Function})

promise = Promise.resolve(42)
promise.then(function (success) {
  return 'Promise resolved to: ' + success
}, function (failure) {
  return 'Promise failed with: ' + failure
})

promise.catch({Function})

promise = Promise.reject(new Error('failure'))
promise.catch(function (failure) {
  return 'Promise failed with: ' + failure
})

Promise.all({iterable})

promise1 = Promise.resolve(1)
promise2 = Promise.resolve(2)
Promise.all([promise1, 123, promise2])
.then(function (promises) {
  promises[0] === 1
  promises[1] === 123
  promises[2] === 2
})

Promise.race({iterable})

promise1 = new Promise()
promise2 = new Promise()

setTimeout(function () {
  promise1.resolve('z')
}, 10)

setTimeout(function () {
  promise2.resolve('l')
}, 100)

Promise.race([promise1, promise2])
.then(function (winner) {
  winner === 'z'
})

Licence: MIT