Skip to main content
Module

x/effection/lib/mod.ts>Callable

Structured concurrency and effects for JavaScript
Latest
type alias Callable
import { type Callable } from "https://deno.land/x/effection@3.0.3/lib/mod.ts";

A uniform integration type representing anything that can be evaluated as a the parameter to call.

call converts a Callable into an Operation which can then be used anywhere within Effection.

APIs that accept Callable values allow end developers to pass simple functions without necessarily needing to know anything about Operations.

function hello(to: Callable<string>): Operation<string> {
  return function*() {
    return `hello ${yield* call(to)}`;
  }
}

await run(() => hello(() => "world!")); // => "hello world!"
await run(() => hello(async () => "world!")); // => "hello world!"
await run(() => hello(function*() { return "world!" })); "hello world!";
definition:
| Promise<T>
| (() => Operation<T>)
| (() => Promise<T>)
| (() => T)