Reputation: 28961
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?
Upvotes: 949
Views: 731984
Reputation: 18116
async function foo() {
// do something
}
Is equivalent to:
const foo = async () => {
// do something
}
Calling foo
with one argument like in the following example:
async function foo(arg1) {
// do something
}
Is equivalent to calling foo
like this (both ways are acceptable since parentheses are optional but not required when just one argument is provided)
const foo = async arg1 => {
// do something
}
const foo = async (arg1) => {
// do something
}
if you call foo
with two or more arguments
async function foo(arg1, arg2) {
// do something
}
Is equivalent to: (parentheses are now required)
const foo = async (arg1, arg2) => {
// do something
}
And for a practical example with an await use inside:
const foo = async () => await Promise.resolve('done');
Upvotes: 25
Reputation: 71
const asynchronousFunction = async () => {
// do something;
// await something else;
}
Upvotes: 7
Reputation: 31
For a static async arrow function, it works like this:
static myFunction = async () => {
// your code here
}
Upvotes: 3
Reputation: 21
Most simplest way
const MyFunction = async ()=>{
// do something here
}
Upvotes: 2
Reputation: 28961
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
}
Upvotes: 1624
Reputation: 387
My async function
const getAllRedis = async (key) => {
let obj = [];
await client.hgetall(key, (err, object) => {
console.log(object);
_.map(object, (ob)=>{
obj.push(JSON.parse(ob));
})
return obj;
// res.send(obj);
});
}
Upvotes: 7
Reputation: 496
Basic Example
folder = async () => {
let fold = await getFold();
//await localStorage.save('folder');
return fold;
};
Upvotes: 22
Reputation: 3582
Async Arrow function syntax with parameters
const myFunction = async (a, b, c) => {
// Code here
}
Upvotes: 22
Reputation: 7285
This the simplest way to assign an async
arrow function expression to a named variable:
const foo = async () => {
// do something
}
(Note that this is not strictly equivalent to async function foo() { }
. Besides the differences between the function
keyword and an arrow expression, the function in this answer is not "hoisted to the top".)
Upvotes: 153
Reputation: 1396
Immediately Invoked Async Arrow Function:
(async () => {
console.log(await asyncFunction());
})();
Immediately Invoked Async Function Expression:
(async function () {
console.log(await asyncFunction());
})();
Upvotes: 111
Reputation: 887
You may also do:
YourAsyncFunctionName = async (value) => {
/* Code goes here */
}
Upvotes: 16