method TaskClass.match
Private
TaskClass.match<T, E, A, B>(
task: TaskClass<T, E>,
handlers: { ok: (value: T) => A | PromiseLike<A>; err: (error: E) => B | PromiseLike<B>; }
): TaskClass<A | B, never>

Data-first twin of TaskClass#match — both declared branches, bugs keep flying.

await Task.match(Task(() => 2), { ok: (n) => n * 21, err: () => 0 }); // 42

Type Parameters

Parameters

task: TaskClass<T, E>
handlers: { ok: (value: T) => A | PromiseLike<A>; err: (error: E) => B | PromiseLike<B>; }

Return Type

TaskClass<A | B, never>

Usage

import { TaskClass } from "lib/task/task.ts";