Skip to main content
Module

x/fun/mod.ts>async_either.flatmap

A collection of algebraic data types, lenses, and schemables based on a light weight higher kinded type implementation. Written for deno.
Latest
function async_either.flatmap
import { async_either } from "https://deno.land/x/fun@v2.0.0/mod.ts";
const { flatmap } = async_either;

Chain AsyncEither based computations together in a pipeline

import { assertEquals } from "https://deno.land/std/testing/asserts.ts";
import * as TE from "./async_either.ts";
import * as E from "./either.ts";
import { pipe } from "./fn.ts";

const ta = pipe(
  TE.wrap(1),
  TE.flatmap(n => TE.wrap(n*2)),
  TE.flatmap(n => TE.wrap(n**2))
)

assertEquals(await ta(), E.right(4))

Parameters

fati: (a: A) => AsyncEither<J, I>

Returns

<B>(ta: AsyncEither<B, A>) => AsyncEither<B | J, I>