Options
All
  • Public
  • Public/Protected
  • All
Menu

Class AsyncHandler<TIn, TOut>

Simple interface for classes that can potentially handle a specific kind of data asynchronously.

Type parameters

  • TIn = void

  • TOut = void

Hierarchy

Implemented by

Index

Constructors

  • Type parameters

    • TIn = void

    • TOut = void

    Returns AsyncHandler<TIn, TOut>

Methods

  • canHandle(input: TIn): Promise<void>
  • Checks if the input can be handled by this class. If it cannot handle the input, rejects with an error explaining why.

    Parameters

    • input: TIn

      Input that could potentially be handled.

    Returns Promise<void>

    A promise resolving if the input can be handled, rejecting with an Error if not.

  • handle(input: TIn): Promise<TOut>
  • Handles the given input. This may only be called if canHandle did not reject. When unconditionally calling both in sequence, consider handleSafe instead.

    Parameters

    • input: TIn

      Input that needs to be handled.

    Returns Promise<TOut>

    A promise resolving when handling is finished.

  • handleSafe(input: TIn): Promise<TOut>
  • Helper function that first runs canHandle followed by handle. Throws the error of canHandle if the data cannot be handled, or returns the result of handle otherwise.

    Parameters

    • input: TIn

      Input data that will be handled if it can be handled.

    Returns Promise<TOut>

    A promise resolving if the input can be handled, rejecting with an Error if not.