diff --git a/src/sync/impl.ts b/src/sync/impl.ts index 74f351d..7dc7905 100644 --- a/src/sync/impl.ts +++ b/src/sync/impl.ts @@ -1,3 +1,5 @@ +import { BaseAsyncSequence } from "../async/impl.js"; +import { AsyncSequence } from "../async/types.js"; import { Collector } from "../collector/types.js"; import { createEqualityMap } from "../equality-map.js"; import { createEqualitySet } from "../equality-set.js"; @@ -626,6 +628,10 @@ export abstract class BaseSequence extends SequenceMarker implements S return new CacheSequence(this); } + awaited(): AsyncSequence> { + return new AwaitedSequence(this); + } + asArray() { return this.toArray(); } @@ -954,9 +960,9 @@ export class DelegatedSequence extends SequenceMarker implements Seque return this.#sequence.cached(); } - // awaited(): AsyncSequence> { - // return this.#sequence.awaited(); - // } + awaited(): AsyncSequence> { + return this.#sequence.awaited(); + } asArray() { return this.#sequence.asArray(); @@ -2481,16 +2487,16 @@ class PartitionBySequence extends BaseSequence { } } -// class AwaitedSequence extends BaseAsyncSequence> { -// readonly #sequence: Sequence; +class AwaitedSequence extends BaseAsyncSequence> { + readonly #sequence: Sequence; -// constructor(sequence: Sequence) { -// super(); + constructor(sequence: Sequence) { + super(); -// this.#sequence = sequence; -// } + this.#sequence = sequence; + } -// override async *iterator() { -// yield* this.#sequence; -// } -// } + override async *iterator() { + yield* this.#sequence; + } +} diff --git a/src/sync/types.ts b/src/sync/types.ts index c5de42e..8aa9022 100644 --- a/src/sync/types.ts +++ b/src/sync/types.ts @@ -1,3 +1,4 @@ +import { AsyncSequence } from "../async/types.js"; import { Collector } from "../collector/types.js"; import { RandomOptions } from "../random/types.js"; import { Predicate, Converter, FilterPredicate, Equater, BiConverter, Accumulator, Comparer, Action } from "../types.js"; @@ -112,7 +113,7 @@ export interface Sequence extends Iterable { cached(): Sequence; - // awaited(): AsyncSequence>; + awaited(): AsyncSequence>; asArray(): TElement[]; toArray(): TElement[];