code: function(iterable) {
          var defer = new Deferred(),
              len = iterable.length;
  
          if(!len) {
              defer.reject(Error());
              return defer.promise();
          }
  
          var i = 0, reason;
          vow._forEach(
              iterable,
              defer.resolve,
              function(e) {
                  i || (reason = e);
                  ++i === len && defer.reject(reason);
              },
              defer.notify,
              defer);
  
          return defer.promise();
      }
docs: Returns a promise, that will be fulfilled if any of the items in `iterable` is fulfilled.
  If all of the `iterable` items get rejected, the promise will be rejected (with the reason of the first rejected item).
  
  @param {Array} iterable
  @returns {vow:Promise}