Syntax for async arrow function

BonsaiOak picture BonsaiOak · Mar 22, 2017 · Viewed 282.8k times · Source

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?

Answer

BonsaiOak picture BonsaiOak · Mar 23, 2017

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
})