Search code examples
javascriptpromiseasync-awaitarrow-functions

Syntax for an async arrow function


I can mark a JavaScript function as "async" (i.e., returning a promise) with the async keyword. Like this:

async function foo() {
  // Do something
}

What is the equivalent syntax for arrow functions?


Solution

  • Async arrow functions look like this:

    const foo = async () => {
      // do something
    }
    

    Async arrow functions look like this for a single argument passed to it:

    const foo = async evt => {
      // do something with evt
    }
    

    Async arrow functions look like this for multiple arguments passed to it:

    const foo = async (evt, callback) => {
      // do something with evt
      // return response with callback
    }
    

    The anonymous form works as well:

    const foo = async function() {
      // do something
    }
    

    An async function declaration looks like this:

    async function foo() {
      // do something
    }
    

    Using async function in a callback:

    const foo = event.onCall(async () => {
      // do something
    })
    

    Using async method inside of a class:

    async foo() {
      // do something
    }