BranchTask


// bt.BranchTask.ts
class BranchTask extends Task;

参考 父类 Task API

API

子任务

/**
 * 子任务数量。
 */
public readonly childCount: number;

/**
 * 当前执行的子任务的索引值。
 */
public readonly childIndex: number;

/**
 * 通过索引值查找子任务。
 */
public at(index: number): ITask;

/**
 * 返回子任务的索引值。
 */
public indexOf(task: ITask): number;

/**
 * 递归遍历子任务。
 */
public walk(func: (task: ITask) => void): void;

/**
 * 遍历子任务。不会递归遍历子任务的子任务。
 */
public forEach(func: (task: ITask, index?: number) => void): void;

/**
 * 测试子任务。不会递归测试子任务的子任务。当有一个子任务通过测试时,返回 true ,否则返回 false 。
 */
public some(func: (task: ITask, index?: number) => boolean): boolean;

/**
 * 测试子任务。不会递归测试子任务的子任务。当所有子任务都通过测试时,返回 true ,否则返回 false 。
 */
public every(func: (task: ITask, index?: number) => boolean): boolean;

/**
 * 返回第一个指定类型的子任务。不会递归查找。
 */
public getChild<T extends ITask>(type: { new (uuid: string): T }): T;

/**
 * 返回所有指定类型的子任务。不会递归查找。
 */
public getChildren<T extends ITask>(type: { new (uuid: string): T }, out?: T[]): T[];

/**
 * 返回第一个通过测试的子任务。不会递归查找。
 */
public getChildBy(func: (task: ITask) => boolean): ITask;

/**
 * 返回所有通过测试的子任务。不会递归查找。
 */
public getChildrenBy(func: (task: ITask) => boolean, out?: ITask[]): ITask[];

/**
 * 递归查找并返回第一个指定类型的任务。
 */
public getTask<T extends ITask>(type: { new (uuid: string): T }): T;

/**
 * 递归查找并返回所有指定类型的任务。
 */
public getTasks<T extends ITask>(type: { new (uuid: string): T }, out?: T[]): T[];

/**
 * 递归查找并返回第一个通过测试的任务。
 */
public getTaskBy(func: (task: ITask) => boolean): ITask;

/**
 * 递归查找并返回所有通过测试的任务。
 */
public getTasksBy(func: (task: ITask) => boolean, out?: ITask[]): ITask[];

事件系统

在基础事件系统上,添加了 broadcast 方法,用来向分支上的所有任务广播事件。

/**
 * 向一个分支任务发射事件,并向下广播给该分支上的所有任务,直到其中一个任务的 onEvent
 * 方法返回 true 或者没有任务为止。
 * 俗称广播事件。
 * 返回 true 表明事件传递被中止。
 */
public broadcast(type: string, arg1?: any, arg2?: any, arg3?: any): boolean | void;

results matching ""

    No results matching ""