method TaskClass.orElse
Private
TaskClass.orElse<T, E, F>(
task: TaskClass<T, E>,
fn: (error: E) => TaskClass<T, F> | PromiseLike<T>
): TaskClass<T, F>

Data-first twin of TaskClass#orElse — a declared failure's fallible second chance.

import { define } from '../result/failure.ts';
const Missed = define('Missed', 'cache miss');

const cached = Task<string>(() => {
  throw Missed();
});
await Task.orElse(cached, () => Task(() => 'from origin')); // 'from origin'

Type Parameters

Parameters

task: TaskClass<T, E>
fn: (error: E) => TaskClass<T, F> | PromiseLike<T>

Return Type

Usage

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