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 { Collector } from "../collector/types.js";
|
||||||
import { createEqualityMap } from "../equality-map.js";
|
import { createEqualityMap } from "../equality-map.js";
|
||||||
import { createEqualitySet } from "../equality-set.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);
|
return new CacheSequence<TElement>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
awaited(): AsyncSequence<Awaited<TElement>> {
|
||||||
|
return new AwaitedSequence<TElement>(this);
|
||||||
|
}
|
||||||
|
|
||||||
asArray() {
|
asArray() {
|
||||||
return this.toArray();
|
return this.toArray();
|
||||||
}
|
}
|
||||||
@@ -954,9 +960,9 @@ export class DelegatedSequence<TElement> extends SequenceMarker implements Seque
|
|||||||
return this.#sequence.cached();
|
return this.#sequence.cached();
|
||||||
}
|
}
|
||||||
|
|
||||||
// awaited(): AsyncSequence<Awaited<TElement>> {
|
awaited(): AsyncSequence<Awaited<TElement>> {
|
||||||
// return this.#sequence.awaited();
|
return this.#sequence.awaited();
|
||||||
// }
|
}
|
||||||
|
|
||||||
asArray() {
|
asArray() {
|
||||||
return this.#sequence.asArray();
|
return this.#sequence.asArray();
|
||||||
@@ -2481,16 +2487,16 @@ class PartitionBySequence<TElement, TBy> extends BaseSequence<TElement[]> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// class AwaitedSequence<T> extends BaseAsyncSequence<Awaited<T>> {
|
class AwaitedSequence<T> extends BaseAsyncSequence<Awaited<T>> {
|
||||||
// readonly #sequence: Sequence<T>;
|
readonly #sequence: Sequence<T>;
|
||||||
|
|
||||||
// constructor(sequence: Sequence<T>) {
|
constructor(sequence: Sequence<T>) {
|
||||||
// super();
|
super();
|
||||||
|
|
||||||
// this.#sequence = sequence;
|
this.#sequence = sequence;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// override async *iterator() {
|
override async *iterator() {
|
||||||
// yield* this.#sequence;
|
yield* this.#sequence;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { AsyncSequence } from "../async/types.js";
|
||||||
import { Collector } from "../collector/types.js";
|
import { Collector } from "../collector/types.js";
|
||||||
import { RandomOptions } from "../random/types.js";
|
import { RandomOptions } from "../random/types.js";
|
||||||
import { Predicate, Converter, FilterPredicate, Equater, BiConverter, Accumulator, Comparer, Action } from "../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>;
|
cached(): Sequence<TElement>;
|
||||||
|
|
||||||
// awaited(): AsyncSequence<Awaited<TElement>>;
|
awaited(): AsyncSequence<Awaited<TElement>>;
|
||||||
|
|
||||||
asArray(): TElement[];
|
asArray(): TElement[];
|
||||||
toArray(): TElement[];
|
toArray(): TElement[];
|
||||||
|
|||||||
Reference in New Issue
Block a user