An async function expression is used to define an async function inside an expression in JavaScript. The async function is declared using the async keyword.
Syntax:
async function [function_name]([param1[, param2[, ..., paramN]]]) { // Statements }
Parameters:
- function_name: This parameter holds the function name. This function name is local to the function body. If the function name is omitted then it becomes an anonymous function.
- paramN: It is the name of the parameter that is to be passed into the function.
- Statements: It contains the body of the function.
Return Value: It returns a promise to return the value or else throws an exception, whenever an error occurs.
Example 1: In this example “neveropen” is printed first and after an interval of 1000 ms, “GFG” is printed.
javascript
function cb() { return new Promise( function (resolve, reject) { setTimeout( function () { resolve( "GFG" ) }, 1000) }) } async function course() { console.log( "neveropen" ); const result = await cb(); console.log(result); } course(); |
Output:
neveropen GFG
Example 2: Here, a file is made gfg.txt and as soon as the file is read it prints “Read the file” in the console. Else it prints an “error” when either the location of the file is wrong or it is not unable to read the file due to any other reason.
javascript
async function gfg() { try { let f1 = await fs.promises.readFile( "gfg.txt" ) console.log( "Read the file" ) } catch (err) { console.log( "error" ); } } gfg(); |
Output:
- When the file read:
Read the file
- When a file is not read(error thrown)
error
Example 3: This is an example of an async function working in parallel.
javascript
function cb() { return new Promise( function (resolve, reject) { setTimeout( function () { resolve( "GFG" ) }, 2000) }) } function cb1() { return new Promise( function (resolve, reject) { setTimeout( function () { resolve( "GFG1" ) }, 1000) }) } async function course() { console.log( "neveropen" ); const result1 = await cb1(); const result = await cb(); console.log(result1); console.log(result); } course(); |
Output:
neveropen GFG1 GFG
Supported Browsers:
- Google Chrome 55 and above
- Edge 15 and above
- Firefox 52 and above
- Safari 10.1 and above
- Opera 42 and above