Skip to main content

Interface: ChildWorkflowHandle<T>

A client side handle to a single Workflow instance. It can be used to signal, wait for completion, and cancel a Workflow execution.

Given the following Workflow definition:

export const incrementSignal = defineSignal('increment');
export async function counterWorkflow(initialValue: number): Promise<void>;

Start a new Workflow execution and get a handle for interacting with it:

// Start the Workflow with initialValue of 2.
const handle = await startWorkflow(counterWorkflow, { args: [2] });
await handle.signal(incrementSignal, 2);
await handle.result(); // throws WorkflowExecutionTerminatedError

Extends​

Type Parameters​

T​

T extends Workflow

Properties​

firstExecutionRunId​

readonly firstExecutionRunId: string

The runId of the initial run of the bound Workflow


workflowId​

readonly workflowId: string

The workflowId of the current Workflow

Inherited from​

BaseWorkflowHandle.workflowId

Methods​

result()​

result(): Promise<WorkflowResultType<T>>

Promise that resolves when Workflow execution completes

Returns​

Promise<WorkflowResultType<T>>

Inherited from​

BaseWorkflowHandle.result


signal()​

signal<Args, Name>(def, ...args): Promise<void>

Signal a running Workflow.

To provide call-site TypeInfo when signaling by name, use signalWithOptions.

Type Parameters​

Args​

Args extends any[] = []

Name​

Name extends string = string

Parameters​

def​

string | SignalDefinition<Args, Name>

a signal definition as returned from defineSignal, or a signal name

args​

...Args

Returns​

Promise<void>

Example​

await handle.signal(incrementSignal, 3);

Inherited from​

BaseWorkflowHandle.signal


signalWithOptions()​

signalWithOptions<Args>(signalName, options): Promise<void>

Experimental

Signal a running Workflow by Signal name with additional options, including call-site TypeInfo and Event Groups. Variadic signal cannot take an options object because Signal arguments are already rest parameters.

Type Parameters​

Args​

Args extends any[] = []

Parameters​

signalName​

string

options​

WorkflowSignalOptions<Args> & EventGroupsOptions

Returns​

Promise<void>

Overrides​

BaseWorkflowHandle.signalWithOptions