'use strict'; const promiseTry = require("es6-promise-try"); const defaultValue = require("./"); function promiseThatReturns(value) { return Promise.resolve(value); } console.log(defaultValue(null, () => 4)); console.log(defaultValue("foo", "bar")); promiseTry(() => { return Promise.all([ defaultValue.async(promiseThatReturns(undefined), promiseThatReturns(Infinity)), defaultValue.async(() => promiseThatReturns("baz"), promiseThatReturns("qux")) ]); }).then((results) => { console.log(results[0]); console.log(results[1]); })