Represents a sequence of hierarchically organized values.

### Type parameters

- TNode
- T: TNode
- TNode
- T: TNode

### Hierarchy

- AsyncQuery<T>
  - AsyncHierarchyQuery
    - AsyncOrderedHierarchyQuery

### Implements

- AsyncIterable<T>
- AsyncHierarchyIterable<TNode, T>

## Index

### Constructors

- constructor

### Methods (Query)

- choose
- consume
- continuous
- empty
- from
- generate
- hierarchy
- if
- objectEntries
- objectKeys
- objectValues
- of
- once
- repeat

### Methods (Scalar)

- average
- break
- copyTo
- corresponds
- correspondsBy
- count
- drain
- elementAt
- endsWith
- eval
- every
- first
- forEach
- includes
- includesSequence
- last
- max
- maxBy
- min
- minBy
- nth
- reduce
- reduceRight
- single
- some
- span
- startsWith
- sum
- toArray
- toLookup
- toMap
- toObject
- toSet
- unzip

### Methods (Subquery)

- append
- concat
- defaultIfEmpty
- distinct
- distinctBy
- do
- except
- exceptBy
- exclude
- expand
- filter
- filterBy
- filterDefined
- flatMap
- groupBy
- intersect
- intersectBy
- map
- pageBy
- patch
- prepend
- relativeComplement
- relativeComplementBy
- reverse
- scan
- scanRight
- select
- selectMany
- skip
- skipRight
- skipUntil
- skipWhile
- spanMap
- symmetricDifference
- symmetricDifferenceBy
- take
- takeRight
- takeUntil
- takeWhile
- tap
- through
- union
- unionBy
- where
- whereBy
- whereDefined
- xor
- xorBy

### Methods (Order)

- orderBy
- orderByDescending

### Methods (Join)

- fullJoin
- groupJoin
- join
- zip

### Methods (Hierarchy)

- ancestors
- ancestorsAndSelf
- bottomMost
- children
- descendants
- descendantsAndSelf
- nthChild
- parents
- root
- self
- siblings
- siblingsAfterSelf
- siblingsAndSelf
- siblingsBeforeSelf
- toHierarchy
- topMost

### Methods

- [Hierarchical.hierarchy]
- [Symbol.asyncIterator]

## Constructors

### constructor

- new AsyncHierarchyQuery(source: PossiblyAsyncHierarchyIterable<TNode, T>): AsyncHierarchyQuery
- new AsyncHierarchyQuery(source: AsyncQueryable<T>, hierarchy: HierarchyProvider<TNode>): AsyncHierarchyQuery

- Overrides AsyncQuery.constructor

  - Defined in asyncQuery.ts:1872

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T>

  #### Returns AsyncHierarchyQuery

- Overrides AsyncQuery.constructor

  - Defined in asyncQuery.ts:1873

  #### Parameters

  - source: AsyncQueryable<T>
  - hierarchy: HierarchyProvider<TNode>

  #### Returns AsyncHierarchyQuery

## Methods (Query)

### Static choose

- choose<K, V>(chooser: function, choices: AsyncQueryable<AsyncChoice<K, V>>, otherwise?: AsyncQueryable<V>): AsyncQuery<V>

- Inherited from AsyncQuery.choose

  - Defined in asyncQuery.ts:298

  Creates an AsyncQuery that iterates the elements from sources picked from a list based on the result of a lazily evaluated choice.

  category

    Query

  #### Type parameters

  - K
  - V

  #### Parameters

  - chooser: function —

    A callback used to choose a source.

    - - (): PromiseLike<K> | K

      - #### Returns PromiseLike<K> | K

  - choices: AsyncQueryable<AsyncChoice<K, V>> —

    A list of sources

  - Optional otherwise: AsyncQueryable<V> —

    A default source to use when another choice could not be made.

  #### Returns AsyncQuery<V>

### Static consume

- consume<T>(iterator: AsyncIterator<T>, options?: ConsumeAsyncOptions): AsyncQuery<T>

- Inherited from AsyncQuery.consume

  - Defined in asyncQuery.ts:272

  Creates an AsyncQuery that, when iterated, consumes the provided `AsyncIterator`.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - iterator: AsyncIterator<T> —

    An `AsyncIterator` object.

  - Optional options: ConsumeAsyncOptions

  #### Returns AsyncQuery<T>

### Static continuous

- continuous<T>(value: PromiseLike<T> | T): AsyncQuery<T>

- Inherited from AsyncQuery.continuous

  - Defined in asyncQuery.ts:239

  Creates an AsyncQuery that repeats the provided value forever.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The value for each element of the `Query`.

  #### Returns AsyncQuery<T>

### Static empty

- empty<T>(): AsyncQuery<T>

- Inherited from AsyncQuery.empty

  - Defined in asyncQuery.ts:206

  Creates an AsyncQuery with no elements.

  category

    Query

  #### Type parameters

  - T

  #### Returns AsyncQuery<T>

### Static from

- from<TNode, T>(source: PossiblyAsyncOrderedHierarchyIterable<TNode, T>): AsyncOrderedHierarchyQuery<TNode, T>
- from<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>): AsyncHierarchyQuery<TNode, T>
- from<T>(source: PossiblyAsyncOrderedIterable<T>): AsyncOrderedQuery<T>
- from<T>(source: AsyncQueryable<T>): AsyncQuery<T>
- from<TNode, T>(source: PossiblyAsyncOrderedIterable<T>, hierarchy: HierarchyProvider<TNode>): AsyncOrderedHierarchyQuery<TNode, T>
- from<TNode, T>(source: AsyncQueryable<T>, hierarchy: HierarchyProvider<TNode>): AsyncHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:144

  Creates an AsyncQuery from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncOrderedHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  #### Returns AsyncOrderedHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:152

  Creates an AsyncQuery from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  #### Returns AsyncHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:160

  Creates an AsyncQuery from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - source: PossiblyAsyncOrderedIterable<T> —

    An AsyncQueryable object.

  #### Returns AsyncOrderedQuery<T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:168

  Creates an AsyncQuery from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns AsyncQuery<T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:177

  Creates an `AsyncHierarchyQuery` from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncOrderedIterable<T> —

    An AsyncQueryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider` object.

  #### Returns AsyncOrderedHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.from

  - Defined in asyncQuery.ts:186

  Creates an `AsyncHierarchyQuery` from an AsyncQueryable source.

  category

    Query

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider` object.

  #### Returns AsyncHierarchyQuery<TNode, T>

### Static generate

- generate<T>(count: number, generator: function): AsyncQuery<T>

- Inherited from AsyncQuery.generate

  - Defined in asyncQuery.ts:251

  Creates an AsyncQuery whose values are provided by a callback executed a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - count: number —

    The number of times to execute the callback.

  - generator: function —

    The callback to execute.

    - - (offset: number): PromiseLike<T> | T

      - #### Parameters

        - offset: number

        #### Returns PromiseLike<T> | T

  #### Returns AsyncQuery<T>

### Static hierarchy

- hierarchy<TNode, T>(root: PromiseLike<T> | T, hierarchy: HierarchyProvider<TNode>): AsyncHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.hierarchy

  - Defined in asyncQuery.ts:262

  Creates an `AsyncHierarchyQuery` from a root node and a `HierarchyProvider`.

  category

    Query

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - root: PromiseLike<T> | T —

    The root node of the hierarchy.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider` object.

  #### Returns AsyncHierarchyQuery<TNode, T>

### Static if

- if<T>(condition: function, thenQueryable: AsyncQueryable<T>, elseQueryable?: AsyncQueryable<T>): AsyncQuery<T>

- Inherited from AsyncQuery.if

  - Defined in asyncQuery.ts:285

  Creates an AsyncQuery that iterates the elements from one of two sources based on the result of a lazily evaluated condition.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - condition: function —

    A callback used to choose a source.

    - - (): PromiseLike<boolean> | boolean

      - #### Returns PromiseLike<boolean> | boolean

  - thenQueryable: AsyncQueryable<T> —

    The source to use when the callback evaluates to `true`.

  - Optional elseQueryable: AsyncQueryable<T> —

    The source to use when the callback evaluates to `false`.

  #### Returns AsyncQuery<T>

### Static objectEntries

- objectEntries<T>(source: PromiseLike<T> | T): AsyncQuery<KeyValuePair<T, Extract<keyof T, string>>>

- Inherited from AsyncQuery.objectEntries

  - Defined in asyncQuery.ts:328

  Creates an AsyncQuery for the own property key-value pairs of an object.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An object.

  #### Returns AsyncQuery<KeyValuePair<T, Extract<keyof T, string>>>

### Static objectKeys

- objectKeys<T>(source: PromiseLike<T> | T): AsyncQuery<Extract<keyof T, string>>

- Inherited from AsyncQuery.objectKeys

  - Defined in asyncQuery.ts:308

  Creates an AsyncQuery for the own property keys of an object.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An object.

  #### Returns AsyncQuery<Extract<keyof T, string>>

### Static objectValues

- objectValues<T>(source: PromiseLike<T> | T): AsyncQuery<T[Extract<keyof T, string>]>

- Inherited from AsyncQuery.objectValues

  - Defined in asyncQuery.ts:318

  Creates an AsyncQuery for the own property values of an object.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An object.

  #### Returns AsyncQuery<T[Extract<keyof T, string>]>

### Static of

- of<T>(...elements: (T | PromiseLike<T>)[]): AsyncQuery<T>

- Inherited from AsyncQuery.of

  - Defined in asyncQuery.ts:197

  Creates an AsyncQuery for the provided elements.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - Rest ...elements: (T | PromiseLike<T>)[] —

    The elements of the `Query`.

  #### Returns AsyncQuery<T>

### Static once

- once<T>(value: PromiseLike<T> | T): AsyncQuery<T>

- Inherited from AsyncQuery.once

  - Defined in asyncQuery.ts:218

  Creates an AsyncQuery over a single element.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The only element for the `Query`.

  #### Returns AsyncQuery<T>

### Static repeat

- repeat<T>(value: PromiseLike<T> | T, count: number): AsyncQuery<T>

- Inherited from AsyncQuery.repeat

  - Defined in asyncQuery.ts:229

  Creates an AsyncQuery for a value repeated a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The value for each element of the `Query`.

  - count: number —

    The number of times to repeat the value.

  #### Returns AsyncQuery<T>

## Methods (Scalar)

### average

- average(): Promise<T extends number ? number : never>
- average(elementSelector: function): Promise<number>

- Inherited from AsyncQuery.average

  - Defined in asyncQuery.ts:1385

  Computes the average for a series of numbers.

  NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Returns Promise<T extends number ? number : never>

- Inherited from AsyncQuery.average

  - Defined in asyncQuery.ts:1393

  Computes the average for a series of numbers.

  NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Parameters

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number | PromiseLike<number>

      - #### Parameters

        - element: T

        #### Returns number | PromiseLike<number>

  #### Returns Promise<number>

### break

- break(predicate: function): Promise<[Query<T>, AsyncQuery<T>]>

- Inherited from AsyncQuery.break

  - Defined in asyncQuery.ts:1622

  Creates a tuple whose first element is a subquery containing the first span of elements that do not match the supplied predicate, and whose second element is a subquery containing the remaining elements.

  The first subquery is eagerly evaluated, while the second subquery is lazily evaluated.

  category

    Scalar

  #### Parameters

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[Query<T>, AsyncQuery<T>]>

### copyTo

- copyTo<U>(dest: U, start?: undefined | number, count?: undefined | number): Promise<U>

- Inherited from AsyncQuery.copyTo

  - Defined in asyncQuery.ts:1858

  Writes each element to a destination array.

  category

    Scalar

  #### Type parameters

  - U: WritableArrayLike<T>

  #### Parameters

  - dest: U —

    The destination array.

  - Optional start: undefined | number —

    The offset into the array at which to start writing.

  - Optional count: undefined | number —

    The number of elements to write to the array.

  #### Returns Promise<U>

### corresponds

- corresponds(right: AsyncQueryable<T>): Promise<boolean>
- corresponds<U>(right: AsyncQueryable<U>, equalityComparison: function): Promise<boolean>

- Inherited from AsyncQuery.corresponds

  - Defined in asyncQuery.ts:1427

  Computes a scalar value indicating whether every element in this AsyncQuery corresponds to a matching element in another AsyncQueryable at the same position.

  category

    Scalar

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.corresponds

  - Defined in asyncQuery.ts:1437

  Computes a scalar value indicating whether every element in this AsyncQuery corresponds to a matching element in another AsyncQueryable at the same position.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equalityComparison: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### correspondsBy

- correspondsBy<K>(right: AsyncQueryable<T>, keySelector: function): Promise<boolean>
- correspondsBy<U, K>(right: AsyncQueryable<U>, leftKeySelector: function, rightKeySelector: function, keyEqualer?: EqualityComparison<K> | Equaler<K>): Promise<boolean>

- Inherited from AsyncQuery.correspondsBy

  - Defined in asyncQuery.ts:1450

  Computes a scalar value indicating whether every element in this AsyncQuery corresponds to a matching element in another Queryable at the same position.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.correspondsBy

  - Defined in asyncQuery.ts:1462

  Computes a scalar value indicating whether the key for every element in this AsyncQuery corresponds to a matching key in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - U
  - K

  #### Parameters

  - right: AsyncQueryable<U> —

    A Queryable object.

  - leftKeySelector: function —

    A callback used to select the key for each element in this Query.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - rightKeySelector: function —

    A callback used to select the key for each element in `right`.

    - - (element: U): K

      - #### Parameters

        - element: U

        #### Returns K

  - Optional keyEqualer: EqualityComparison<K> | Equaler<K> —

    An optional callback used to compare the equality of two keys.

  #### Returns Promise<boolean>

### count

- count(predicate?: undefined | function): Promise<number>

- Inherited from AsyncQuery.count

  - Defined in asyncQuery.ts:1249

  Counts the number of elements in the Query, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<number>

### drain

- drain(): Promise<void>

- Inherited from AsyncQuery.drain

  - Defined in asyncQuery.ts:1649

  Iterates over all of the elements in the query, ignoring the results.

  category

    Scalar

  #### Returns Promise<void>

### elementAt

- elementAt(offset: number): Promise<T | undefined>

- Inherited from AsyncQuery.elementAt

  - Defined in asyncQuery.ts:1564

  Finds the value in the Query at the provided offset. A negative offset starts from the last element.

  category

    Scalar

  #### Parameters

  - offset: number —

    An offset.

  #### Returns Promise<T | undefined>

### endsWith

- endsWith(right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- endsWith<U>(right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- Inherited from AsyncQuery.endsWith

  - Defined in asyncQuery.ts:1542

  Computes a scalar value indicating whether the elements of this AsyncQuery end with the same sequence of elements in another AsyncQueryable.

  category

    Scalar

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.endsWith

  - Defined in asyncQuery.ts:1552

  Computes a scalar value indicating whether the elements of this AsyncQuery end with the same sequence of elements in another AsyncQueryable.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### eval

- eval(): Promise<Query<T>>

- Inherited from AsyncQuery.eval

  - Defined in asyncQuery.ts:1657

  Eagerly evaluate the query, returning a new `Query`.

  category

    Scalar

  #### Returns Promise<Query<T>>

### every

- every(predicate: function): Promise<boolean>

- Inherited from AsyncQuery.every

  - Defined in asyncQuery.ts:1416

  Computes a scalar value indicating whether all elements of the Query match the supplied callback.

  category

    Scalar

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<boolean>

### first

- first<U>(predicate: function): Promise<U | undefined>
- first(predicate?: undefined | function): Promise<T | undefined>

- Inherited from AsyncQuery.first

  - Defined in asyncQuery.ts:1260

  Gets the first element in the Query, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- Inherited from AsyncQuery.first

  - Defined in asyncQuery.ts:1269

  Gets the first element in the Query, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### forEach

- forEach(callback: function): Promise<void>
- forEach(callback: function): Promise<void>

- Inherited from AsyncQuery.forEach

  - Defined in asyncQuery.ts:1633

  Invokes a callback for each element of the query.

  category

    Scalar

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns Promise<void>

- Inherited from AsyncQuery.forEach

  - Defined in asyncQuery.ts:1640

  Invokes a callback for each element of the query.

  category

    Scalar

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void | PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void | PromiseLike<void>

  #### Returns Promise<void>

### includes

- includes(value: T, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- includes<U>(value: U, equaler: function): Promise<boolean>

- Inherited from AsyncQuery.includes

  - Defined in asyncQuery.ts:1474

  Computes a scalar value indicating whether the provided value is included in the query.

  category

    Scalar

  #### Parameters

  - value: T —

    A value.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.includes

  - Defined in asyncQuery.ts:1483

  Computes a scalar value indicating whether the provided value is included in the query.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - value: U —

    A value.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### includesSequence

- includesSequence(right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- includesSequence<U>(right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- Inherited from AsyncQuery.includesSequence

  - Defined in asyncQuery.ts:1496

  Computes a scalar value indicating whether the elements of this AsyncQuery include an exact sequence of elements from another AsyncQueryable.

  category

    Scalar

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.includesSequence

  - Defined in asyncQuery.ts:1506

  Computes a scalar value indicating whether the elements of this AsyncQuery include an exact sequence of elements from another AsyncQueryable.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### last

- last<U>(predicate: function): Promise<U | undefined>
- last(predicate?: undefined | function): Promise<T | undefined>

- Inherited from AsyncQuery.last

  - Defined in asyncQuery.ts:1281

  Gets the last element in the Query, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- Inherited from AsyncQuery.last

  - Defined in asyncQuery.ts:1290

  Gets the last element in the Query, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### max

- max(comparer?: Comparison<T> | Comparer<T>): Promise<T | undefined>

- Inherited from AsyncQuery.max

  - Defined in asyncQuery.ts:1343

  Gets the maximum element in the query, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional comparer: Comparison<T> | Comparer<T> —

    An optional callback used to compare two elements.

  #### Returns Promise<T | undefined>

### maxBy

- maxBy<K>(keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): Promise<T | undefined>

- Inherited from AsyncQuery.maxBy

  - Defined in asyncQuery.ts:1354

  Gets the maximum element in the query, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare the keys.

  #### Returns Promise<T | undefined>

### min

- min(comparer?: Comparison<T> | Comparer<T>): Promise<T | undefined>

- Inherited from AsyncQuery.min

  - Defined in asyncQuery.ts:1321

  Gets the minimum element in the query, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional comparer: Comparison<T> | Comparer<T> —

    An optional callback used to compare two elements.

  #### Returns Promise<T | undefined>

### minBy

- minBy<K>(keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): Promise<T | undefined>

- Inherited from AsyncQuery.minBy

  - Defined in asyncQuery.ts:1332

  Gets the minimum element in the query, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare the keys.

  #### Returns Promise<T | undefined>

### nth

- nth(offset: number): Promise<T | undefined>

- Inherited from AsyncQuery.nth

  - Defined in asyncQuery.ts:1577

  Finds the value in the Query at the provided offset. A negative offset starts from the last element.

  This is an alias for `elementAt`.

  category

    Scalar

  #### Parameters

  - offset: number —

    An offset.

  #### Returns Promise<T | undefined>

### reduce

- reduce(accumulator: function): Promise<T>
- reduce<U>(accumulator: function, seed?: U): Promise<U>
- reduce<U, R>(accumulator: function, seed: U, resultSelector: function): Promise<R>

- Inherited from AsyncQuery.reduce

  - Defined in asyncQuery.ts:1184

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns Promise<T>

- Inherited from AsyncQuery.reduce

  - Defined in asyncQuery.ts:1193

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - Optional seed: U —

    An optional seed value.

  #### Returns Promise<U>

- Inherited from AsyncQuery.reduce

  - Defined in asyncQuery.ts:1203

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - U
  - R

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R | PromiseLike<R>

      - #### Parameters

        - result: U
        - count: number

        #### Returns R | PromiseLike<R>

  #### Returns Promise<R>

### reduceRight

- reduceRight(accumulator: function): Promise<T>
- reduceRight<U>(accumulator: function, seed: U): Promise<U>
- reduceRight<U, R>(accumulator: function, seed: U, resultSelector: function): Promise<R>

- Inherited from AsyncQuery.reduceRight

  - Defined in asyncQuery.ts:1216

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns Promise<T>

- Inherited from AsyncQuery.reduceRight

  - Defined in asyncQuery.ts:1225

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns Promise<U>

- Inherited from AsyncQuery.reduceRight

  - Defined in asyncQuery.ts:1235

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - U
  - R

  #### Parameters

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R | PromiseLike<R>

      - #### Parameters

        - result: U
        - count: number

        #### Returns R | PromiseLike<R>

  #### Returns Promise<R>

### single

- single<U>(predicate: function): Promise<U | undefined>
- single(predicate?: undefined | function): Promise<T | undefined>

- Inherited from AsyncQuery.single

  - Defined in asyncQuery.ts:1301

  Gets the only element in the Query, or returns undefined.

  category

    Scalar

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- Inherited from AsyncQuery.single

  - Defined in asyncQuery.ts:1309

  Gets the only element in the Query, or returns undefined.

  category

    Scalar

  #### Parameters

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### some

- some(predicate?: undefined | function): Promise<boolean>

- Inherited from AsyncQuery.some

  - Defined in asyncQuery.ts:1405

  Computes a scalar value indicating whether the Query contains any elements, optionally filtering the elements using the supplied callback.

  category

    Scalar

  #### Parameters

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<boolean>

### span

- span<U>(predicate: function): Promise<[Query<U>, AsyncQuery<T>]>
- span(predicate: function): Promise<[Query<T>, AsyncQuery<T>]>

- Inherited from AsyncQuery.span

  - Defined in asyncQuery.ts:1592

  Creates a tuple whose first element is a subquery containing the first span of elements that match the supplied predicate, and whose second element is a subquery containing the remaining elements.

  The first subquery is eagerly evaluated, while the second subquery is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns Promise<[Query<U>, AsyncQuery<T>]>

- Inherited from AsyncQuery.span

  - Defined in asyncQuery.ts:1605

  Creates a tuple whose first element is a subquery containing the first span of elements that match the supplied predicate, and whose second element is a subquery containing the remaining elements.

  The first subquery is eagerly evaluated, while the second subquery is lazily evaluated.

  category

    Scalar

  #### Parameters

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[Query<T>, AsyncQuery<T>]>

### startsWith

- startsWith(right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- startsWith<U>(right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- Inherited from AsyncQuery.startsWith

  - Defined in asyncQuery.ts:1519

  Computes a scalar value indicating whether the elements of this AsyncQuery start with the same sequence of elements in another AsyncQueryable.

  category

    Scalar

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- Inherited from AsyncQuery.startsWith

  - Defined in asyncQuery.ts:1529

  Computes a scalar value indicating whether the elements of this AsyncQuery start with the same sequence of elements in another AsyncQueryable.

  category

    Scalar

  #### Type parameters

  - U

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### sum

- sum(): Promise<T extends number ? number : never>
- sum(elementSelector: function): Promise<number>

- Inherited from AsyncQuery.sum

  - Defined in asyncQuery.ts:1365

  Computes the sum for a series of numbers.

  NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Returns Promise<T extends number ? number : never>

- Inherited from AsyncQuery.sum

  - Defined in asyncQuery.ts:1373

  Computes the sum for a series of numbers.

  NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Parameters

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number | PromiseLike<number>

      - #### Parameters

        - element: T

        #### Returns number | PromiseLike<number>

  #### Returns Promise<number>

### toArray

- toArray(): Promise<T[]>
- toArray<V>(elementSelector: function): Promise<V[]>

- Inherited from AsyncQuery.toArray

  - Defined in asyncQuery.ts:1681

  Creates an Array for the elements of the Query.

  category

    Scalar

  #### Returns Promise<T[]>

- Inherited from AsyncQuery.toArray

  - Defined in asyncQuery.ts:1689

  Creates an Array for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - V

  #### Parameters

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<V[]>

### toLookup

- toLookup<K>(keySelector: function, keyEqualer?: Equaler<K>): Promise<Lookup<K, T>>
- toLookup<K, V>(keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): Promise<Lookup<K, V>>

- Inherited from AsyncQuery.toLookup

  - Defined in asyncQuery.ts:1767

  Creates a `Lookup` for the elements of the `Query`.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<Lookup<K, T>>

- Inherited from AsyncQuery.toLookup

  - Defined in asyncQuery.ts:1777

  Creates a `Lookup` for the elements of the `Query`.

  category

    Scalar

  #### Type parameters

  - K
  - V

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<Lookup<K, V>>

### toMap

- toMap<K>(keySelector: function): Promise<Map<K, T>>
- toMap<K>(keySelector: function, keyEqualer: Equaler<K>): Promise<HashMap<K, T>>
- toMap<K, V>(keySelector: function, elementSelector: function): Promise<Map<K, V>>
- toMap<K, V>(keySelector: function, elementSelector: function, keyEqualer: Equaler<K>): Promise<HashMap<K, V>>

- Inherited from AsyncQuery.toMap

  - Defined in asyncQuery.ts:1730

  Creates a `Map` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Promise<Map<K, T>>

- Inherited from AsyncQuery.toMap

  - Defined in asyncQuery.ts:1738

  Creates a `Map` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<HashMap<K, T>>

- Inherited from AsyncQuery.toMap

  - Defined in asyncQuery.ts:1746

  Creates a `Map` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - K
  - V

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<Map<K, V>>

- Inherited from AsyncQuery.toMap

  - Defined in asyncQuery.ts:1755

  Creates a `Map` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - K
  - V

  #### Parameters

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<HashMap<K, V>>

### toObject

- toObject(prototype: object | null | undefined, keySelector: function): Promise<object>
- toObject<V>(prototype: object | null | undefined, keySelector: function, elementSelector: function, descriptorSelector?: undefined | function): Promise<object>

- Inherited from AsyncQuery.toObject

  - Defined in asyncQuery.ts:1812

  Creates an Object for the elements of the AsyncQuery. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(undefined, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(baseObject, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function
      obj.toString(); // "x",1:"y",2

      // with a null prototype
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(null, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // undefined

  category

    Scalar

  #### Parameters

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  #### Returns Promise<object>

- Inherited from AsyncQuery.toObject

  - Defined in asyncQuery.ts:1845

  Creates an Object for the elements the Query. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(undefined, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(baseObject, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function
      obj.toString(); // 1:2

      // with a null prototype
      const obj = await fromAsync([Promise.resolve(["x", 1]), ["y", 2]]).toObject(null, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // undefined

  category

    Scalar

  #### Type parameters

  - V

  #### Parameters

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional descriptorSelector: undefined | function —

    A callback that defines the `PropertyDescriptor` for each property.

  #### Returns Promise<object>

### toSet

- toSet(): Promise<Set<T>>
- toSet(equaler: Equaler<T>): Promise<HashSet<T>>
- toSet<V>(elementSelector: function): Promise<Set<V>>
- toSet<V>(elementSelector: function, equaler: Equaler<V>): Promise<HashSet<V>>

- Inherited from AsyncQuery.toSet

  - Defined in asyncQuery.ts:1698

  Creates a `Set` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Returns Promise<Set<T>>

- Inherited from AsyncQuery.toSet

  - Defined in asyncQuery.ts:1704

  Creates a `Set` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Parameters

  - equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Promise<HashSet<T>>

- Inherited from AsyncQuery.toSet

  - Defined in asyncQuery.ts:1711

  Creates a `Set` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - V

  #### Parameters

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<Set<V>>

- Inherited from AsyncQuery.toSet

  - Defined in asyncQuery.ts:1719

  Creates a `Set` for the elements of the `AsyncQuery`.

  category

    Scalar

  #### Type parameters

  - V

  #### Parameters

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - equaler: Equaler<V> —

    An [[Equaler]] object used to compare equality.

  #### Returns Promise<HashSet<V>>

### unzip

- unzip(): Promise<T extends [any, ...any[]] ? { [I in keyof T]: T[I][]; } : unknown[]>
- unzip<U>(partSelector: function): Promise<object>

- Inherited from AsyncQuery.unzip

  - Defined in asyncQuery.ts:1665

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Returns Promise<T extends [any, ...any[]] ? { [I in keyof T]: T[I][]; } : unknown[]>

- Inherited from AsyncQuery.unzip

  - Defined in asyncQuery.ts:1672

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Type parameters

  - U: [any, Array]

  #### Parameters

  - partSelector: function —

    A callback that converts a result into a tuple.

    - - (value: T): U | PromiseLike<U>

      - #### Parameters

        - value: T

        #### Returns U | PromiseLike<U>

  #### Returns Promise<object>

## Methods (Subquery)

### append

- append(value: PromiseLike<T> | T): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.append

  - Defined in asyncQuery.ts:903

  Creates a subquery for the elements of this AsyncQuery with the provided value appended to the end.

  category

    Subquery

  #### Parameters

  - value: PromiseLike<T> | T —

    The value to append.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### concat

- concat(right: AsyncQueryable<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.concat

  - Defined in asyncQuery.ts:872

  Creates a subquery that concatenates this AsyncQuery with another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### defaultIfEmpty

- defaultIfEmpty(defaultValue: PromiseLike<T> | T): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.defaultIfEmpty

  - Defined in asyncQuery.ts:937

  Creates a subquery that contains the provided default value if this AsyncQuery contains no elements.

  category

    Subquery

  #### Parameters

  - defaultValue: PromiseLike<T> | T —

    The default value.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### distinct

- distinct(equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.distinct

  - Defined in asyncQuery.ts:882

  Creates a subquery for the distinct elements of this AsyncQuery.

  category

    Subquery

  #### Parameters

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### distinctBy

- distinctBy<K>(keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.distinctBy

  - Defined in asyncQuery.ts:893

  Creates a subquery for the distinct elements of this AsyncQuery.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key to determine uniqueness.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### do

- do(callback: function): AsyncUnorderedQueryFlow<this, T>
- do(callback: function): AsyncUnorderedQueryFlow<this, T>
- do(callback: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.do

  - Defined in asyncQuery.ts:510

  Lazily invokes a callback as each element of the query is iterated.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.do

  - Defined in asyncQuery.ts:518

  Lazily invokes a callback as each element of the query is iterated.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void>

  #### Returns AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.do

  - Defined in asyncQuery.ts:526

  Lazily invokes a callback as each element of the query is iterated.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void> | void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void> | void

  #### Returns AsyncUnorderedQueryFlow<this, T>

### except

- except(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.except

  - Defined in asyncQuery.ts:773

  Creates a subquery for the set difference (a.k.a. 'relative complement') between this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### exceptBy

- exceptBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.exceptBy

  - Defined in asyncQuery.ts:785

  Creates a subquery for the set difference between this and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### exclude

- exclude(...values: [T | PromiseLike<T>, Array]): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.exclude

  - Defined in asyncQuery.ts:585

  Creates a subquery with every instance of the specified value removed.

  category

    Subquery

  #### Parameters

  - Rest ...values: [T | PromiseLike<T>, Array] —

    The values to exclude.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### expand

- expand(projection: function): AsyncQuery<T>

- Inherited from AsyncQuery.expand

  - Defined in asyncQuery.ts:500

  Creates a subquery that iterates the results of recursively expanding the elements of the source.

  category

    Subquery

  #### Parameters

  - projection: function —

    A callback used to recusively expand each element.

    - - (element: T): AsyncQueryable<T>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<T>

  #### Returns AsyncQuery<T>

### filter

- filter<U>(predicate: function): AsyncUnorderedQueryFlow<this, U>
- filter(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.filter

  - Defined in asyncQuery.ts:342

  Creates a subquery whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns AsyncUnorderedQueryFlow<this, U>

- Inherited from AsyncQuery.filter

  - Defined in asyncQuery.ts:350

  Creates a subquery whose elements match the supplied predicate.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### filterBy

- filterBy<K>(keySelector: function, predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.filterBy

  - Defined in asyncQuery.ts:362

  Creates a subquery where the selected key for each element matches the supplied predicate.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### filterDefined

- filterDefined(): AsyncUnorderedQueryFlow<this, NonNullable<T>>
- filterDefined<K>(keySelector: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.filterDefined

  - Defined in asyncQuery.ts:403

  Creates a subquery whose elements are neither `null` nor `undefined`.

  category

    Subquery

  #### Returns AsyncUnorderedQueryFlow<this, NonNullable<T>>

- Inherited from AsyncQuery.filterDefined

  - Defined in asyncQuery.ts:410

  Creates a subquery where the selected key for each element is neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns AsyncUnorderedQueryFlow<this, T>

### flatMap

- flatMap<U>(projection: function): AsyncQuery<U>
- flatMap<U, R>(projection: function, resultSelector: function): AsyncQuery<R>

- Inherited from AsyncQuery.flatMap

  - Defined in asyncQuery.ts:461

  Creates a subquery that iterates the results of applying a callback to each element.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  #### Returns AsyncQuery<U>

- Inherited from AsyncQuery.flatMap

  - Defined in asyncQuery.ts:468

  Creates a subquery that iterates the results of applying a callback to each element.

  category

    Subquery

  #### Type parameters

  - U
  - R

  #### Parameters

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  - resultSelector: function
    - - (element: T, innerElement: U): R | PromiseLike<R>

      - #### Parameters

        - element: T
        - innerElement: U

        #### Returns R | PromiseLike<R>

  #### Returns AsyncQuery<R>

### groupBy

- groupBy<K>(keySelector: function, keyEqualer?: Equaler<K>): AsyncQuery<Grouping<K, T>>
- groupBy<K, V>(keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): AsyncQuery<Grouping<K, V>>
- groupBy<K, V, R>(keySelector: function, elementSelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncQuery<R>

- Inherited from AsyncQuery.groupBy

  - Defined in asyncQuery.ts:990

  Groups each element of this AsyncQuery by its key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<Grouping<K, T>>

- Inherited from AsyncQuery.groupBy

  - Defined in asyncQuery.ts:999

  Groups each element by its key.

  category

    Subquery

  #### Type parameters

  - K
  - V

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<Grouping<K, V>>

- Inherited from AsyncQuery.groupBy

  - Defined in asyncQuery.ts:1009

  Groups each element by its key.

  category

    Subquery

  #### Type parameters

  - K
  - V
  - R

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - resultSelector: function —

    A callback used to select a result from a group.

    - - (key: K, elements: Query<V>): R

      - #### Parameters

        - key: K
        - elements: Query<V>

        #### Returns R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<R>

### intersect

- intersect<UNode, U>(right: PossiblyAsyncHierarchyIterable<UNode, U>, equaler?: Equaler<T>): AsyncHierarchyQuery<UNode, U>
- intersect<U>(right: AsyncQueryable<U>, equaler?: Equaler<T>): AsyncQuery<U>
- intersect(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncQuery<T>
- intersect<UNode, U>(right: PossiblyAsyncHierarchyIterable<UNode, U>, equaler?: Equaler<T>): AsyncHierarchyQuery<TNode, U>
- intersect<U>(right: AsyncQueryable<U>, equaler?: Equaler<T>): AsyncHierarchyQuery<TNode, U>
- intersect(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.intersect

  - Defined in asyncQuery.ts:691

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - UNode
  - U: UNode & T

  #### Parameters

  - right: PossiblyAsyncHierarchyIterable<UNode, U> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyQuery<UNode, U>

- Inherited from AsyncQuery.intersect

  - Defined in asyncQuery.ts:699

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - U: T

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncQuery<U>

- Inherited from AsyncQuery.intersect

  - Defined in asyncQuery.ts:707

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncQuery<T>

- Inherited from AsyncHierarchyQuery.intersect

  - Defined in asyncQuery.ts:2186

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - UNode: TNode
  - U: UNode & T

  #### Parameters

  - right: PossiblyAsyncHierarchyIterable<UNode, U> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyQuery<TNode, U>

- Inherited from AsyncHierarchyQuery.intersect

  - Defined in asyncQuery.ts:2194

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - U: T

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyQuery<TNode, U>

- Inherited from AsyncHierarchyQuery.intersect

  - Defined in asyncQuery.ts:2202

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyQuery<TNode, T>

### intersectBy

- intersectBy<UNode, U, K>(right: PossiblyAsyncHierarchyIterable<UNode, U>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyQuery<UNode, U>
- intersectBy<U, K>(right: AsyncQueryable<U>, keySelector: function, keyEqualer?: Equaler<K>): AsyncQuery<U>
- intersectBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncQuery<T>
- intersectBy<UNode, U, K>(right: PossiblyAsyncHierarchyIterable<UNode, U>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyQuery<UNode, U>
- intersectBy<U, K>(right: AsyncQueryable<U>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyQuery<TNode, U>
- intersectBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyQuery<TNode, T>

- Inherited from AsyncQuery.intersectBy

  - Defined in asyncQuery.ts:720

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - UNode
  - U: UNode & T
  - K

  #### Parameters

  - right: PossiblyAsyncHierarchyIterable<UNode, U> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyQuery<UNode, U>

- Inherited from AsyncQuery.intersectBy

  - Defined in asyncQuery.ts:729

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - U: T
  - K

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<U>

- Inherited from AsyncQuery.intersectBy

  - Defined in asyncQuery.ts:738

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<T>

- Inherited from AsyncHierarchyQuery.intersectBy

  - Defined in asyncQuery.ts:2212

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - UNode: TNode
  - U: UNode & T
  - K

  #### Parameters

  - right: PossiblyAsyncHierarchyIterable<UNode, U> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyQuery<UNode, U>

- Inherited from AsyncHierarchyQuery.intersectBy

  - Defined in asyncQuery.ts:2221

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - U: T
  - K

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyQuery<TNode, U>

- Inherited from AsyncHierarchyQuery.intersectBy

  - Defined in asyncQuery.ts:2230

  Creates a subquery for the set intersection of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyQuery<TNode, T>

### map

- map<U>(selector: function): AsyncQuery<U>

- Inherited from AsyncQuery.map

  - Defined in asyncQuery.ts:440

  Creates a subquery by applying a callback to each element.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - selector: function —

    A callback used to map each element.

    - - (element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  #### Returns AsyncQuery<U>

### pageBy

- pageBy(pageSize: number): AsyncQuery<Page<T>>

- Inherited from AsyncQuery.pageBy

  - Defined in asyncQuery.ts:949

  Creates a subquery that splits this AsyncQuery into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

  category

    Subquery

  #### Parameters

  - pageSize: number —

    The number of elements per page.

  #### Returns AsyncQuery<Page<T>>

### patch

- patch(start: number, skipCount?: undefined | number, range?: AsyncQueryable<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.patch

  - Defined in asyncQuery.ts:926

  Creates a subquery for the elements of this AsyncQuery with the provided range patched into the results.

  category

    Subquery

  #### Parameters

  - start: number —

    The offset at which to patch the range.

  - Optional skipCount: undefined | number —

    The number of elements to skip from start.

  - Optional range: AsyncQueryable<T> —

    The range to patch into the result.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### prepend

- prepend(value: PromiseLike<T> | T): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.prepend

  - Defined in asyncQuery.ts:913

  Creates a subquery for the elements of this AsyncQuery with the provided value prepended to the beginning.

  category

    Subquery

  #### Parameters

  - value: PromiseLike<T> | T —

    The value to prepend.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### relativeComplement

- relativeComplement(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.relativeComplement

  - Defined in asyncQuery.ts:798

  Creates a subquery for the set difference between this AsyncQuery and another AsyncQueryable.

  This is an alias for `except`.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### relativeComplementBy

- relativeComplementBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.relativeComplementBy

  - Defined in asyncQuery.ts:812

  Creates a subquery for the set difference between this AsyncQuery and another AsyncQueryable.

  This is an alias for `except`.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### reverse

- reverse(): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.reverse

  - Defined in asyncQuery.ts:575

  Creates a subquery whose elements are in the reverse order.

  category

    Subquery

  #### Returns AsyncUnorderedQueryFlow<this, T>

### scan

- scan(accumulator: function): AsyncQuery<T>
- scan<U>(accumulator: function, seed: U): AsyncQuery<U>

- Inherited from AsyncQuery.scan

  - Defined in asyncQuery.ts:1028

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Parameters

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns AsyncQuery<T>

- Inherited from AsyncQuery.scan

  - Defined in asyncQuery.ts:1037

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns AsyncQuery<U>

### scanRight

- scanRight(accumulator: function): AsyncQuery<T>
- scanRight<U>(accumulator: function, seed?: U): AsyncQuery<U>

- Inherited from AsyncQuery.scanRight

  - Defined in asyncQuery.ts:1050

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Parameters

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns AsyncQuery<T>

- Inherited from AsyncQuery.scanRight

  - Defined in asyncQuery.ts:1059

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - Optional seed: U —

    An optional seed value.

  #### Returns AsyncQuery<U>

### select

- select<U>(selector: function): AsyncQuery<U>

- Inherited from AsyncQuery.select

  - Defined in asyncQuery.ts:451

  Creates a subquery by applying a callback to each element. This is an alias for `map`.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - selector: function —

    A callback used to map each element.

    - - (element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  #### Returns AsyncQuery<U>

### selectMany

- selectMany<U>(projection: function): AsyncQuery<U>
- selectMany<U, R>(projection: function, resultSelector: function): AsyncQuery<R>

- Inherited from AsyncQuery.selectMany

  - Defined in asyncQuery.ts:480

  Creates a subquery that iterates the results of applying a callback to each element. This is an alias for `flatMap`.

  category

    Subquery

  #### Type parameters

  - U

  #### Parameters

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  #### Returns AsyncQuery<U>

- Inherited from AsyncQuery.selectMany

  - Defined in asyncQuery.ts:488

  Creates a subquery that iterates the results of applying a callback to each element. This is an alias for `flatMap`.

  category

    Subquery

  #### Type parameters

  - U
  - R

  #### Parameters

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  - resultSelector: function
    - - (element: T, innerElement: U): R | PromiseLike<R>

      - #### Parameters

        - element: T
        - innerElement: U

        #### Returns R | PromiseLike<R>

  #### Returns AsyncQuery<R>

### skip

- skip(count: number): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.skip

  - Defined in asyncQuery.ts:596

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Parameters

  - count: number —

    The number of elements to skip.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### skipRight

- skipRight(count: number): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.skipRight

  - Defined in asyncQuery.ts:607

  Creates a subquery containing all elements except the last elements up to the supplied count.

  category

    Subquery

  #### Parameters

  - count: number —

    The number of elements to skip.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### skipUntil

- skipUntil(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.skipUntil

  - Defined in asyncQuery.ts:629

  Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncUnorderedQueryFlow<this, T>

### skipWhile

- skipWhile(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.skipWhile

  - Defined in asyncQuery.ts:618

  Creates a subquery containing all elements except the first elements that match the supplied predicate.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### spanMap

- spanMap<K>(keySelector: function): AsyncQuery<Grouping<K, T>>
- spanMap<K, V>(keySelector: function, elementSelector: function): AsyncQuery<Grouping<K, V>>
- spanMap<K, V, R>(keySelector: function, elementSelector: function, spanSelector: function): AsyncQuery<R>

- Inherited from AsyncQuery.spanMap

  - Defined in asyncQuery.ts:959

  Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns AsyncQuery<Grouping<K, T>>

- Inherited from AsyncQuery.spanMap

  - Defined in asyncQuery.ts:968

  Creates a subquery whose values are computed from each element of the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - K
  - V

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns AsyncQuery<Grouping<K, V>>

- Inherited from AsyncQuery.spanMap

  - Defined in asyncQuery.ts:978

  Creates a subquery whose values are computed from the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - K
  - V
  - R

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - spanSelector: function —

    A callback used to select a result from a contiguous range.

    - - (key: K, elements: Query<V>): PromiseLike<R> | R

      - #### Parameters

        - key: K
        - elements: Query<V>

        #### Returns PromiseLike<R> | R

  #### Returns AsyncQuery<R>

### symmetricDifference

- symmetricDifference(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.symmetricDifference

  - Defined in asyncQuery.ts:823

  Creates a subquery for the symmetric difference between this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### symmetricDifferenceBy

- symmetricDifferenceBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.symmetricDifferenceBy

  - Defined in asyncQuery.ts:835

  Creates a subquery for the symmetric difference between this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### take

- take(count: number): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.take

  - Defined in asyncQuery.ts:640

  Creates a subquery containing the first elements up to the supplied count.

  category

    Subquery

  #### Parameters

  - count: number —

    The number of elements to take.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### takeRight

- takeRight(count: number): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.takeRight

  - Defined in asyncQuery.ts:651

  Creates a subquery containing the last elements up to the supplied count.

  category

    Subquery

  #### Parameters

  - count: number —

    The number of elements to take.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### takeUntil

- takeUntil(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.takeUntil

  - Defined in asyncQuery.ts:680

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### takeWhile

- takeWhile<U>(predicate: function): AsyncUnorderedQueryFlow<this, U>
- takeWhile(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.takeWhile

  - Defined in asyncQuery.ts:661

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncUnorderedQueryFlow<this, U>

- Inherited from AsyncQuery.takeWhile

  - Defined in asyncQuery.ts:669

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### tap

- tap(callback: function): AsyncUnorderedQueryFlow<this, T>
- tap(callback: function): AsyncUnorderedQueryFlow<this, T>
- tap(callback: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.tap

  - Defined in asyncQuery.ts:538

  Lazily invokes a callback as each element of the query is iterated. This is an alias for `do`.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.tap

  - Defined in asyncQuery.ts:547

  Lazily invokes a callback as each element of the query is iterated. This is an alias for `do`.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void>

  #### Returns AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.tap

  - Defined in asyncQuery.ts:556

  Lazily invokes a callback as each element of the query is iterated. This is an alias for `do`.

  category

    Subquery

  #### Parameters

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void> | void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void> | void

  #### Returns AsyncUnorderedQueryFlow<this, T>

### through

- through<R>(callback: function): AsyncQueryFlow<R, QueriedType<R>>

- Inherited from AsyncQuery.through

  - Defined in asyncQuery.ts:567

  Pass the entire query to the provided callback, creating a new query from the result.

  category

    Subquery

  #### Type parameters

  - R: Queryable<any>

  #### Parameters

  - callback: function —

    A callback function.

    - - (source: this): R

      - #### Parameters

        - source: this

        #### Returns R

  #### Returns AsyncQueryFlow<R, QueriedType<R>>

### union

- union(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.union

  - Defined in asyncQuery.ts:750

  Creates a subquery for the set union of this AsyncQuery and another AsyncQueryable.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### unionBy

- unionBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.unionBy

  - Defined in asyncQuery.ts:762

  Creates a subquery for the set union of this AsyncQuery and another AsyncQueryable, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### where

- where<U>(predicate: function): AsyncUnorderedQueryFlow<this, U>
- where(predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.where

  - Defined in asyncQuery.ts:373

  Creates a subquery whose elements match the supplied predicate. This is an alias for `filter`.

  category

    Subquery

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns AsyncUnorderedQueryFlow<this, U>

- Inherited from AsyncQuery.where

  - Defined in asyncQuery.ts:382

  Creates a subquery whose elements match the supplied predicate. This is an alias for `filter`.

  category

    Subquery

  #### Parameters

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncUnorderedQueryFlow<this, T>

### whereBy

- whereBy<K>(keySelector: function, predicate: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.whereBy

  - Defined in asyncQuery.ts:394

  Creates a subquery where the selected key for each element matches the supplied predicate.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean

  #### Returns AsyncUnorderedQueryFlow<this, T>

### whereDefined

- whereDefined(): AsyncUnorderedQueryFlow<this, NonNullable<T>>
- whereDefined<K>(keySelector: function): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.whereDefined

  - Defined in asyncQuery.ts:422

  Creates a subquery whose elements are neither `null` nor `undefined`.

  NOTE: This is an alias for `filterDefined`.

  category

    Subquery

  #### Returns AsyncUnorderedQueryFlow<this, NonNullable<T>>

- Inherited from AsyncQuery.whereDefined

  - Defined in asyncQuery.ts:429

  Creates a subquery where the selected key for each element is neither `null` nor `undefined`.

  NOTE: This is an alias for `filterDefined`.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns AsyncUnorderedQueryFlow<this, T>

### xor

- xor(right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.xor

  - Defined in asyncQuery.ts:848

  Creates a subquery for the symmetric difference between this AsyncQuery and another AsyncQueryable.

  This is an alias for `symmetricDifference`.

  category

    Subquery

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

### xorBy

- xorBy<K>(right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncUnorderedQueryFlow<this, T>

- Inherited from AsyncQuery.xorBy

  - Defined in asyncQuery.ts:862

  Creates a subquery for the symmetric difference between this AsyncQuery and another AsyncQueryable.

  This is an alias for `symmetricDifference`.

  category

    Subquery

  #### Type parameters

  - K

  #### Parameters

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncUnorderedQueryFlow<this, T>

## Methods (Order)

### orderBy

- orderBy<K>(keySelector: function, comparer?: Comparison<K> | Comparer<K>): AsyncOrderedQueryFlow<this, T>

- Inherited from AsyncQuery.orderBy

  - Defined in asyncQuery.ts:1145

  Creates an ordered subquery whose elements are sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional comparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedQueryFlow<this, T>

### orderByDescending

- orderByDescending<K>(keySelector: function, comparer?: Comparison<K> | Comparer<K>): AsyncOrderedQueryFlow<this, T>

- Inherited from AsyncQuery.orderByDescending

  - Defined in asyncQuery.ts:1156

  Creates an ordered subquery whose elements are sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - K

  #### Parameters

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional comparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedQueryFlow<this, T>

## Methods (Join)

### fullJoin

- fullJoin<I, K, R>(inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncQuery<R>

- Inherited from AsyncQuery.fullJoin

  - Defined in asyncQuery.ts:1108

  Creates a subquery for the correlated elements of this AsyncQuery and another AsyncQueryable.

  category

    Join

  #### Type parameters

  - I
  - K
  - R

  #### Parameters

  - inner: AsyncQueryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in this AsyncQuery.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in the other Queryable.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: T | undefined, inner: I | undefined): R | PromiseLike<R>

      - #### Parameters

        - outer: T | undefined
        - inner: I | undefined

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<R>

### groupJoin

- groupJoin<I, K, R>(inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncQuery<R>

- Inherited from AsyncQuery.groupJoin

  - Defined in asyncQuery.ts:1080

  Creates a grouped subquery for the correlated elements of this AsyncQuery and another AsyncQueryable object.

  category

    Join

  #### Type parameters

  - I
  - K
  - R

  #### Parameters

  - inner: AsyncQueryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in this AsyncQuery.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in the other Queryable object.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: T, inner: Query<I>): R | PromiseLike<R>

      - #### Parameters

        - outer: T
        - inner: Query<I>

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<R>

### join

- join<I, K, R>(inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncQuery<R>

- Inherited from AsyncQuery.join

  - Defined in asyncQuery.ts:1094

  Creates a subquery for the correlated elements of this AsyncQuery and another AsyncQueryable.

  category

    Join

  #### Type parameters

  - I
  - K
  - R

  #### Parameters

  - inner: AsyncQueryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in this AsyncQuery.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in the other Queryable.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: T, inner: I): R | PromiseLike<R>

      - #### Parameters

        - outer: T
        - inner: I

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncQuery<R>

### zip

- zip<U>(right: AsyncQueryable<U>): AsyncQuery<[T, U]>
- zip<U, R>(right: AsyncQueryable<U>, selector: function): AsyncQuery<R>

- Inherited from AsyncQuery.zip

  - Defined in asyncQuery.ts:1119

  Creates a subquery that combines this AsyncQuery with another AsyncQueryable by combining elements in tuples.

  category

    Join

  #### Type parameters

  - U

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  #### Returns AsyncQuery<[T, U]>

- Inherited from AsyncQuery.zip

  - Defined in asyncQuery.ts:1129

  Creates a subquery that combines this AsyncQuery with another AsyncQueryable by combining elements using the supplied callback.

  category

    Join

  #### Type parameters

  - U
  - R

  #### Parameters

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - selector: function —

    A callback used to combine two elements.

    - - (left: T, right: U): R | PromiseLike<R>

      - #### Parameters

        - left: T
        - right: U

        #### Returns R | PromiseLike<R>

  #### Returns AsyncQuery<R>

## Methods (Hierarchy)

### ancestors

- ancestors<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- ancestors(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1914

  Creates a subquery for the ancestors of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1922

  Creates a subquery for the ancestors of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### ancestorsAndSelf

- ancestorsAndSelf<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- ancestorsAndSelf(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1933

  Creates a subquery for the ancestors of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1941

  Creates a subquery for the ancestors of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### bottomMost

- bottomMost<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- bottomMost(predicate?: undefined | function): AsyncHierarchyQuery<TNode, T>

- - Defined in asyncQuery.ts:2158

  Creates a subquery for the bottom-most elements. Elements that are an ancestor of any other element are removed.

  category

    Hierarchy

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function
    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2165

  Creates a subquery for the bottom-most elements. Elements that are an ancestor of any other element are removed.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyQuery<TNode, T>

### children

- children<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- children(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2036

  Creates a subquery for the children of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2044

  Creates a subquery for the children of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### descendants

- descendants<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- descendants(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1952

  Creates a subquery for the descendants of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1960

  Creates a subquery for the descendants of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### descendantsAndSelf

- descendantsAndSelf<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- descendantsAndSelf(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1971

  Creates a subquery for the descendants of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1979

  Creates a subquery for the descendants of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### nthChild

- nthChild(offset: number): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2132

  Creates a subquery for the child of each element at the specified offset. A negative offset starts from the last child.

  category

    Hierarchy

  #### Parameters

  - offset: number —

    The offset for the child.

  #### Returns AsyncHierarchyQuery<TNode>

### parents

- parents<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- parents(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2017

  Creates a subquery for the parents of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2025

  Creates a subquery for the parents of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### root

- root<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- root(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1895

  Creates a subquery for the roots of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1903

  Creates a subquery for the roots of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### self

- self<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- self<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- self(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:1990

  Creates a subquery for this [[Asyncquery]].

  category

    Hierarchy

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:1998

  Creates a subquery for this [[Asyncquery]].

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2006

  Creates a subquery for this [[Asyncquery]].

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### siblings

- siblings<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- siblings(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2055

  Creates a subquery for the siblings of each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2063

  Creates a subquery for the siblings of each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### siblingsAfterSelf

- siblingsAfterSelf<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- siblingsAfterSelf(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2112

  Creates a subquery for the siblings after each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2120

  Creates a subquery for the siblings after each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### siblingsAndSelf

- siblingsAndSelf<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- siblingsAndSelf(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2074

  Creates a subquery for the siblings of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2082

  Creates a subquery for the siblings of each element as well as each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### siblingsBeforeSelf

- siblingsBeforeSelf<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- siblingsBeforeSelf(predicate?: undefined | function): AsyncHierarchyQuery<TNode>

- - Defined in asyncQuery.ts:2093

  Creates a subquery for the siblings before each element in the hierarchy.

  category

    Hierarchy

  #### Type parameters

  - U: TNode

  #### Parameters

  - predicate: function —

    A callback used to filter the results.

    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2101

  Creates a subquery for the siblings before each element in the hierarchy.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function —

    A callback used to filter the results.

  #### Returns AsyncHierarchyQuery<TNode>

### toHierarchy

- toHierarchy(hierarchy: HierarchyProvider<T>): AsyncHierarchyQueryFlow<this, T>

- Inherited from AsyncQuery.toHierarchy

  - Defined in asyncQuery.ts:1170

  Creates a HierarchyQuery using the provided HierarchyProvider.

  category

    Hierarchy

  #### Parameters

  - hierarchy: HierarchyProvider<T> —

    A HierarchyProvider.

  #### Returns AsyncHierarchyQueryFlow<this, T>

### topMost

- topMost<U>(predicate: function): AsyncHierarchyQuery<TNode, U>
- topMost(predicate?: undefined | function): AsyncHierarchyQuery<TNode, T>

- - Defined in asyncQuery.ts:2141

  Creates a subquery for the top-most elements. Elements that are a descendant of any other element are removed.

  category

    Hierarchy

  #### Type parameters

  - U: T

  #### Parameters

  - predicate: function
    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyQuery<TNode, U>

- - Defined in asyncQuery.ts:2148

  Creates a subquery for the top-most elements. Elements that are a descendant of any other element are removed.

  category

    Hierarchy

  #### Parameters

  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyQuery<TNode, T>

## Methods ()

### [Hierarchical.hierarchy]

- [Hierarchical.hierarchy](): HierarchyProvider<TNode>

- Implementation of AsyncHierarchyIterable.[Hierarchical.hierarchy]

  - Defined in asyncQuery.ts:2172

  #### Returns HierarchyProvider<TNode>

### [Symbol.asyncIterator]

- [Symbol.asyncIterator](): AsyncIterator<T>

- Implementation of AsyncHierarchyIterable.[Symbol.asyncIterator]

  Inherited from AsyncQuery.[Symbol.asyncIterator]

  - Defined in asyncQuery.ts:133

  #### Returns AsyncIterator<T>

Generated using TypeDoc