Wait for event
step.waitForEvent(id, options): Promise<null | EventPayload>
- Name
- id
- Type
- string
- Required
- required
- Description
- The ID of the step. This will be what appears in your function's logs and is used to memoize step state across function versions. 
 
- Name
- options
- Type
- object
- Required
- required
- Description
- Options for configuring how to wait for the event. Properties- Name
- event
- Type
- string
- Required
- required
- Description
- The name of a given event to wait for. 
 
- Name
- timeout
- Type
- string
- Required
- required
- Description
- The amount of time to wait to receive the event. A time string compatible with the ms package, e.g. - "30m",- "3 hours", or- "2.5d"
 
- Name
- match
- Type
- string
- Required
- optional
- Description
- The property to match the event trigger and the wait event, using dot-notation, e.g. - data.userId. Cannot be combined with- if.
 
- Name
- if
- Type
- string
- Required
- optional
- Description
- An expression on which to conditionally match the original event trigger ( - event) and the wait event (- async). Cannot be combined with- match.**- Expressions are defined using the Common Expression Language (CEL) with the events accessible using dot-notation. Read our guide to writing expressions for more info. Examples: - event.data.userId == async.data.userId && async.data.billing_plan == 'pro'
 
 
 
 
// Wait 7 days for an approval and match invoice IDs
const approval = await step.waitForEvent("wait-for-approval", {
  event: "app/invoice.approved",
  timeout: "7d",
  match: "data.invoiceId",
});
// Wait 30 days for a user to start a subscription
// on the pro plan
const subscription = await step.waitForEvent("wait-for-subscription", {
  event: "app/subscription.created",
  timeout: "30d",
  if: "event.data.userId == async.data.userId && async.data.billing_plan == 'pro'",
});
step.waitForEvent() must be called using await or some other Promise handler to ensure your function sleeps correctly.