Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/effection/lib/call.ts>call

Structured concurrency and effects for JavaScript
Latest
function call
import { call } from "https://deno.land/x/effection@4.0.0-alpha.1/lib/call.ts";

Pause the current operation, async function, plain function, or operation function. The calling operation will be resumed (or errored) once call is completed.

call() is a uniform integration point for calling async functions, generator functions, and plain functions.

To call an async function:

Examples

Example 1

async function* googleSlowly() {
  return yield* call(async function() {
    await new Promise(resolve => setTimeout(resolve, 2000));
    return await fetch("https://google.com");
  });
}

or a plain function:

Example 2

yield* call(() => "a string");

Type Parameters

T
optional
TArgs extends unknown[] = []

Parameters

fn: (...args: TArgs) => Promise<T>

the operation, promise, async function, generator funnction, or plain function to call as part of this operation

Type Parameters

T
optional
TArgs extends unknown[] = []

Parameters

fn: (...args: TArgs) => T

Type Parameters

T
optional
TArgs extends unknown[] = []

Parameters

fn: (...args: TArgs) => Operation<T>