The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value. Async await function and operators work on promises.
Async/await functions help us to write completely synchronous-looking code while performing async tasks behind the scenes.
For example, let us say we have a asynchronous function that returns a promise −
// Promise that resolves to 100 after 2sec
function getHundred() {
return new Promise(resolve => {
setTimeout(() => {
resolve(100);
}, 2000);
});
}We want to use this in a function, but we need to wait for the return value. Using callbacks we can do this in the following way −
function useGetHundred() {
getHundred().then((value) => {
console.log(value);
})
}But we need to unnecessarily need to create a callback to execute on the returned data. We can instead use async await to simplify this code −
Example
// Declare an async function. When this function is called, it'll also return a Promise
// But inside this function any async calls can be made synchronous using await keyword
async function useGetHundredAsync() {
// wait for the getHundred promise to resolve then store its value in value.
let value = await getHundred();
console.log(value)
}Output
100