Helper function that first runs the canHandle function followed by the handle function.
Throws the error of the canHandle function if the data can't be handled,
or returns the result of the handle function 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.
Return value depends on the given type.
A composite handler that executes handlers in parallel.