implement awaited sequence
This commit is contained in:
@@ -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<TElement> extends SequenceMarker implements S
|
||||
return new CacheSequence<TElement>(this);
|
||||
}
|
||||
|
||||
awaited(): AsyncSequence<Awaited<TElement>> {
|
||||
return new AwaitedSequence<TElement>(this);
|
||||
}
|
||||
|
||||
asArray() {
|
||||
return this.toArray();
|
||||
}
|
||||
@@ -954,9 +960,9 @@ export class DelegatedSequence<TElement> extends SequenceMarker implements Seque
|
||||
return this.#sequence.cached();
|
||||
}
|
||||
|
||||
// awaited(): AsyncSequence<Awaited<TElement>> {
|
||||
// return this.#sequence.awaited();
|
||||
// }
|
||||
awaited(): AsyncSequence<Awaited<TElement>> {
|
||||
return this.#sequence.awaited();
|
||||
}
|
||||
|
||||
asArray() {
|
||||
return this.#sequence.asArray();
|
||||
@@ -2481,16 +2487,16 @@ class PartitionBySequence<TElement, TBy> extends BaseSequence<TElement[]> {
|
||||
}
|
||||
}
|
||||
|
||||
// class AwaitedSequence<T> extends BaseAsyncSequence<Awaited<T>> {
|
||||
// readonly #sequence: Sequence<T>;
|
||||
class AwaitedSequence<T> extends BaseAsyncSequence<Awaited<T>> {
|
||||
readonly #sequence: Sequence<T>;
|
||||
|
||||
// constructor(sequence: Sequence<T>) {
|
||||
// super();
|
||||
constructor(sequence: Sequence<T>) {
|
||||
super();
|
||||
|
||||
// this.#sequence = sequence;
|
||||
// }
|
||||
this.#sequence = sequence;
|
||||
}
|
||||
|
||||
// override async *iterator() {
|
||||
// yield* this.#sequence;
|
||||
// }
|
||||
// }
|
||||
override async *iterator() {
|
||||
yield* this.#sequence;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<TElement> extends Iterable<TElement> {
|
||||
|
||||
cached(): Sequence<TElement>;
|
||||
|
||||
// awaited(): AsyncSequence<Awaited<TElement>>;
|
||||
awaited(): AsyncSequence<Awaited<TElement>>;
|
||||
|
||||
asArray(): TElement[];
|
||||
toArray(): TElement[];
|
||||
|
||||
Reference in New Issue
Block a user