code: function asyncPluck(arrPromise, property) {
      var args = argsToArray(arguments, 1);
      return asyncArray(when(arrPromise).chain(function (result) {
          var prop = property.split(".");
          result = normalizeResult(result);
          return asyncArray(prop).forEach(function (prop) {
              var exec = prop.match(/(\w+)\(\)$/);
              return asyncArray(result).map(function (item) {
                  return exec ? item[exec[1]]() : item[prop];
              }, 1).chain(function (res) {
                      result = res;
                  });
          }, 1).chain(function () {
                  return result;
              });
      }));
  }
docs: Async version of {@link comb.array.pluck}.
  
  ```
  var when = comb.when,
  array = comb.async.array;
  function asyncArr(){
  var ret = new comb.Promise();
  process.nextTick(ret.callback.bind(ret, [
  {name:{first:when("Fred"), last:"Jones"}, age:when(50), roles:["a", "b", "c"]},
  {name:{first:"Bob", last:"Yukon"}, age:40, roles:when(["b", "c"])},
  {name:{first:"Alice", last:"Palace"}, age:when(35), roles:["c"]},
  {name:{first:when("Johnny"), last:"P."}, age:56, roles:when([])}
  ]);
  return ret.promise;
  }
  
  array(asyncArr()).pluck("name.first").then(function(values){
  console.log(values); //["Fred", "Bob", "Alice", "Johnny"]
  });
  
  pluck(asyncArr(), "age").then(function(values){
  console.log(values); //[50, 40, 35, 56]
  });
  
  ```
  
  @static
  @memberof comb.async
  @name pluck