Any function can be made asynchronous, including function expressions, arrow functions, and methods. This lesson shows the syntax for each of the function types.
For example, we have a demo:
const fetch = require('node-fetch'); const BASE_URL = 'https://api.github.com/users'; const fetchGitHubUser = async (handle) => { const response = await fetch(`${BASE_URL}/${handle}`); return await response.json(); }; fetchGitHubUser('zhentian-wan') .then(console.log)
Since 'fetchGithubUser' is also an async function, we can convert it to async/await function:
const fetch = require('node-fetch'); const BASE_URL = 'https://api.github.com/users'; const fetchGitHubUser = async (handle) => { const response = await fetch(`${BASE_URL}/${handle}`); return await response.json(); }; (async () => { const user = await fetchGitHubUser('zhentian-wan'); console.log(user); })();
Here we must wrap await function inside IIFE async function, otherwise it won't work.
We can also convert 'fetchGithubUser' function into a class:
const fetch = require('node-fetch'); const BASE_URL = 'https://api.github.com/users'; class GithubUser { async fetchGitHubUser(handle) { const response = await fetch(`${BASE_URL}/${handle}`); return await response.json(); } } (async () => { const github = new GithubUser(); const user = await github.fetchGitHubUser('zhentian-wan'); console.log(user); })();