Skip to main content

async_function

A simple Deno module for accessing the AsyncFunction class and type.

Why?

Despite the Function class being in the default global scope, the AsyncFunction class is not. A workaround to get this type can be achieved by just using the following code:

const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;
// credits: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction

Obviously, this is a little bit of nasty code that everyone may not want to have to include every time you need the AsyncFunction class. Therefore, I have created this Deno module to give you the AsyncFunction class just by importing it from the Deno third-party modules registry.

Usage

Here is how you can import the AsyncFunction class:

import { AsyncFunction } from "http://deno.land/x/async_function/mod.ts";

There you go! You can now freely use the AsyncFunction class and all of it’s glory! Of course, if we did want to add a type for AsyncFunction if we have an undeclared variable or just want to be explicit, we can just do typeof AsyncFunction to get its type. However, if you really want to have the AsyncFunction type imported into your code from yours truly, you can use this import statement:

import type { AsyncFunctionType } from "http://deno.land/x/async_function/mod.ts";

Now, we have the AsyncFunction class and its type for us to use. Please refer to the MDN docs page on AsyncFunction for more info.

License

By contributing your code, you agree to license your contribution under the MIT License.