A bit of sugar on top of native ES2015 Promises. KinoPromise inherits directly from native Promise object.
KinoPromise.all([
new KinoPromise(resolve => resolve(1)),
new KinoPromise(resolve => resolve(2))
]).spread((one, two) => {
assert.equal(one, 1); // true
assert.equal(two, 2); // true
});
KinoPromise.all({
foo: new KinoPromise(resolve => resolve(1)),
bar: new KinoPromise(resolve => resolve(2))
}).then(({foo, bar}) {
assert(foo, 1) // true
assert(bar, 2) // true
});
var promise = new KinoPromise(function () {});
promise instanceof Promise // true