📖 Scenario: You want to fetch user data from a server and then show a greeting message. Using asynchronous functions helps you wait for the data without freezing the page.
🎯 Goal: Build a simple async function that waits for user data and then prints a greeting message.
📋 What You'll Learn
Create an async function named getUser that returns a user object after a delay.
Create a variable userId with the value 1.
Use await inside an async function to get the user data.
Print the greeting message using the user's name.
💡 Why This Matters
🌍 Real World
Async functions let web pages get data from servers without freezing or waiting, making apps smooth and fast.
💼 Career
Understanding async functions is key for web developers to handle data fetching, user interactions, and background tasks efficiently.
Progress0 / 4 steps
1
Create the async function getUser
Write an async function called getUser that returns a promise resolving to the object { id: 1, name: 'Alice' } after 1 second using setTimeout.
Javascript
Hint
Use async function and return a new Promise that resolves after 1 second.
2
Create the userId variable
Create a variable called userId and set it to the number 1.
Javascript
Hint
Use const userId = 1; to create the variable.
3
Use await to get user data
Write an async function called showGreeting. Inside it, use await getUser() to get the user object and store it in a variable called user.
Javascript
Hint
Remember to mark showGreeting as async to use await inside it.
4
Print the greeting message
Inside the showGreeting function, add a console.log statement that prints `Hello, ${user.name}!`. Then call showGreeting() to run it.
Javascript
Hint
Use console.log(`Hello, ${user.name}!`) and call showGreeting().
Practice
(1/5)
1. What does the async keyword do when placed before a function in JavaScript?
easy
A. It converts the function into a synchronous blocking call.
B. It makes the function run faster by using multiple CPU cores.
C. It automatically retries the function if it fails.
D. It makes the function return a promise and allows use of await inside it.
Solution
Step 1: Understand the role of async
The async keyword marks a function to always return a promise.
Step 2: Recognize the effect on await
Inside an async function, you can use await to pause until a promise resolves.
Final Answer:
It makes the function return a promise and allows use of await inside it. -> Option D
Quick Check:
async = returns promise + allows await [OK]
Hint: Async means function returns promise and can use await inside [OK]
2. Which of the following is the correct syntax to declare an async function named fetchData?
easy
A. async function fetchData() { }
B. function async fetchData() { }
C. function fetchData async() { }
D. async fetchData function() { }
Solution
Step 1: Recall async function declaration syntax
The correct syntax places async before the function keyword.
Step 2: Check each option's order
Only async function fetchData() { } correctly writes async function fetchData() { }.
Final Answer:
async function fetchData() { } -> Option A
Quick Check:
async before function keyword = correct syntax [OK]
Hint: Put async before function keyword for correct syntax [OK]
Common Mistakes:
Placing async after function name
Writing async inside parentheses
Mixing order of async and function keywords
3. What will be the output of this code?
async function greet() {
return 'Hello';
}
greet().then(console.log);
medium
A. Promise { 'Hello' }
B. Hello
C. undefined
D. SyntaxError
Solution
Step 1: Understand async function return value
An async function always returns a promise that resolves to the returned value.
Step 2: Analyze the .then usage
The then method receives the resolved value 'Hello' and logs it.
Final Answer:
Hello -> Option B
Quick Check:
Async function returns promise, .then logs resolved value [OK]
Hint: Async returns promise; .then logs resolved value [OK]
Common Mistakes:
Expecting direct string without .then
Confusing promise object with resolved value
Thinking async function returns undefined
4. Identify the error in this async function:
async function load() {
const data = await fetch('url');
return data.json;
}
medium
A. fetch should not be awaited
B. Cannot use await inside async function
C. Missing parentheses after json to call the method
D. async keyword is misplaced
Solution
Step 1: Check usage of await and fetch
Using await fetch('url') is correct inside async function.
Step 2: Inspect return statement
data.json is a function and needs parentheses: data.json().
Final Answer:
Missing parentheses after json to call the method -> Option C
Quick Check:
Call json() method with parentheses [OK]
Hint: Remember to call json() with parentheses after await fetch [OK]
Common Mistakes:
Forgetting parentheses on json method
Thinking await can't be used inside async
Misplacing async keyword
5. You want to write an async function processData that fetches JSON from a URL and returns the value of the name property. Which code correctly does this?
hard
A. async function processData(url) {
const response = await fetch(url);
const data = await response.json();
return data.name;
}
B. async function processData(url) {
const response = fetch(url);
const data = response.json();
return data.name;
}
C. function processData(url) {
const response = await fetch(url);
const data = await response.json();
return data.name;
}
D. async function processData(url) {
const response = await fetch(url);
const data = response.json;
return data.name;
}
Solution
Step 1: Confirm async function and await usage
async function processData(url) {
const response = await fetch(url);
const data = await response.json();
return data.name;
} correctly uses async and awaits both fetch and response.json().
Step 2: Check return of name property
async function processData(url) {
const response = await fetch(url);
const data = await response.json();
return data.name;
} returns data.name after parsing JSON, which is correct.
Final Answer:
async function processData(url) {
const response = await fetch(url);
const data = await response.json();
return data.name;
} -> Option A
Quick Check:
Await fetch and json(), then return property [OK]
Hint: Await fetch and json(), then return needed property [OK]
Common Mistakes:
Not awaiting response.json()
Missing async keyword
Returning json method without calling it
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.