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