Skip to main content
Module

x/fun/promise.ts>ap

A collection of algebraic data types, lenses, and schemables based on a light weight higher kinded type implementation. Written for deno.
Go to Latest
function ap
import { ap } from "https://deno.land/x/fun@v2.0.0-alpha.6/promise.ts";

Create a new Promise from a Promise<(a: A) => I> and a Promise. Although Promises encapsulate asynchrony, there is no way defer a Promise once created, thus this ap function always evaluates both input Promises in parallel.

Examples

Example 1

import { of, ap } from "./promise.ts";
import { pipe } from "./fn.ts";

type Person = { name: string, age: number };

const person = (name: string) => (age: number): Person => ({ name, age });

const result = pipe(
  of(person),
  ap(of("Brandon")),
  ap(of(37)),
); // Promise<Person>

Parameters

ua: Promise<A>

Returns

<I>(ufai: Promise<(a: A) => I>) => Promise<I>