UNPKG

parallel-es

Version:
39 lines (38 loc) 3.27 kB
import { IParallelChain } from "./parallel-chain"; import { IParallelStream } from "../stream/parallel-stream"; import { IParallelEnvironment, IParallelTaskEnvironment } from "../parallel-environment"; import { IParallelChainState } from "./parallel-chain-state"; import { IFunctionId } from "../../function/function-id"; /** * Implementation of a {@link IParallelChain} * * The implementation uses an internal state ({@link IParallelChainState}) to distinguishes between a not yet scheduled job ({@link PendingParallelChainState}), * a job that has been scheduled but potentially not yet completed ({@link ScheduledParallelChainState}) and a job that * is waiting for another one to complete, but has not yet been scheduled ({@link DependentParallelChainState}). * * @param TIn type of the elements created by the generator * @param TEnv type of the job environment * @param TOut type of the elements in the resulting array */ export declare class ParallelChainImpl<TIn, TEnv extends IParallelEnvironment, TOut> implements IParallelChain<TIn, TEnv, TOut> { state: IParallelChainState<TOut>; /** * Creates a new parallel chain with the given state * @param state the state of the chain */ constructor(state: IParallelChainState<TOut>); inEnvironment<TEnvNew extends IParallelEnvironment>(newEnv: Function | IParallelEnvironment | IFunctionId, ...params: any[]): IParallelChain<TIn, TEnv & TEnvNew, TOut>; map<TResult>(mapper: ((this: void, element: TOut, env: TEnv & IParallelTaskEnvironment) => TResult) | IFunctionId): IParallelChain<TIn, TEnv, TResult>; reduce<TResult>(defaultValue: TResult, accumulator: ((this: void, memo: TResult, value: TOut, env: TEnv & IParallelTaskEnvironment) => TResult) | IFunctionId, combiner?: (this: void, sub1: TResult, sub2: TResult) => TResult): IParallelStream<TResult[], TResult>; filter(predicate: ((this: void, value: TOut, env: TEnv & IParallelTaskEnvironment) => boolean) | IFunctionId): IParallelChain<TIn, TEnv, TOut>; subscribe(onNext: (subResult: TOut[], taskIndex: number, valuesPerWorker: number) => void, onError?: (reason: any) => void, onComplete?: (result: TOut[]) => void): IParallelStream<TOut[], TOut[]>; then<TResult1, TResult2>(onfulfilled: (value: TOut[]) => (PromiseLike<TResult1> | TResult1), onrejected: (reason: any) => (PromiseLike<TResult2> | TResult2)): Promise<TResult2 | TResult1>; then<TResult>(onfulfilled: (value: TOut[]) => (PromiseLike<TResult> | TResult), onrejected: (reason: any) => (PromiseLike<TResult> | TResult)): Promise<TResult>; then<TResult>(onfulfilled: (value: TOut[]) => (PromiseLike<TResult> | TResult)): Promise<TResult>; then<TResult>(onfulfilled?: (value: TOut[]) => (PromiseLike<TResult> | TResult), onrejected?: (reason: any) => (PromiseLike<TResult> | TResult)): Promise<TResult>; then<TResult>(onfulfilled?: (value: TOut[]) => (PromiseLike<TResult> | TResult), onrejected?: (reason: any) => void): Promise<TResult>; catch<TResult>(onrejected: (reason: any) => (PromiseLike<TResult> | TResult)): Promise<TResult | TOut[]>; catch(onrejected: (reason: any) => (PromiseLike<TOut[]> | TOut[])): Promise<TOut[]>; private resolveChain(); private _chain<TResult>(iterator, iteratee); }