when-all

normalize an object/array where some values may be wrapped in Results

when-all

normalize an object/array where some value may be wrapped in Results

With component, packin

$ {package mananger} install jkroso/when-all

With npm

$ npm install --save when-all

then in your app:

var all = require('when-all')

Create a Result for a new x with all values lifted out of their Results

all([
  getPage('google.com'),
  getPage('google.co.nz')
]).then(compare)
all({
  usa: getPage('google.com'),
  nz: getPage('google.co.nz')
}).then(compare)

You could decorate a function so it can take Results as arguments.

var all = require('when-all')
 
function decorate(fn) {
  return function(){
    var self = this
    return all(arguments).then(function(args){
      return fn.apply(self, args)
    })
  }
}
 
var asyncCompare = decorate(compare)
asyncCompare(
  getPage('google.com'),
  getPage('google.co.nz')
)
$ make

Then open your browser to.