function someByAsync( collection, n, done ) {
		if ( !isCollection( collection ) ) {
			throw new TypeError( format( 'invalid argument. First argument must be a collection. Value: `%s`.', collection ) );
		}
		if ( !isPositiveInteger( n ) ) {
			throw new TypeError( format( 'invalid argument. Second argument must be a positive integer. Value: `%s`.', n ) );
		}
		if ( !isFunction( done ) ) {
			throw new TypeError( format( 'invalid argument. Last argument must be a function. Value: `%s`.', done ) );
		}
		return limit( collection, n, opts, f, clbk );

		/**
		* Callback invoked upon completion.
		*
		* @private
		* @param {*} [error] - error
		* @param {boolean} bool - test result
		* @returns {void}
		*/
		function clbk( error, bool ) {
			if ( error ) {
				return done( error, false );
			}
			done( null, bool );
		}
	}
Invokes a predicate function for each element in a collection.

@private
@param {Collection} collection - input collection
@param {PositiveInteger} n - number of elements
@param {Callback} done - function to invoke upon completion
@throws {TypeError} first argument must be a collection
@throws {TypeError} second argument must be a positive integer
@throws {TypeError} last argument must be a function
@returns {void}