constyourAsyncFunction=async()=>{// do something asynchronously and return a promisereturn result;}
anArray.forEach(asyncitem=>{// do something asynchronously for each item in 'anArray'// one could also use .map here to return an array of promises to use with 'Promise.all()'});
server.getPeople().then(asyncpeople=>{
people.forEach(person=>{// do something asynchronously for each person});});
//ORIGINAL//each .then() returns a promisse and can be chained. The .then() will run after the previous one has finished. It emulates an async/await behavior.fetch('https://jsonplaceholder.typicode.com/users')//fetch the content.then((response)=> response.json())//then use that content and convert it to a javascript object.then(users=>{const firstUser = users[0];console.log(firstUser);returnfetch('https://jsonplaceholder.typicode.com/posts?userId='+ firstUser.id);})//then return the content from posts related to that user ID.then((response)=> response.json())//then use that content and convert it to a javascript object.then(posts=>console.log(posts));//then log the result//ASYNC/AWAITconstmyAsyncFunction=async()=>{//define that this will be asynchronousconst usersResponse =awaitfetch('https://jsonplaceholder.typicode.com/users');//wait for the fecth result and put it in the variableconst users =await usersResponse.json();//wait for the previous item to be done, transform it into a javascript object and put it in the variableconst secondUser = users[1];console.log(secondUser);//then log the resultconst postsResponse =awaitfetch('https://jsonplaceholder.typicode.com/posts?userId='+ secondUser.id);//wait for the previous item to be done, wait for the fecth result and put it in the variableconst posts =await postsResponse.json();//wait for the previous item to be done, transform it into a javascript object and put it in the variableconsole.log(posts);//then log the result}myAsyncFunction();
// Old School Javascript Invoke(asyncfunction(){awaitsomeAsyncFunction();})();//New ES6 Javascript Invoke(async()=>{awaitsomeAsyncFunction();})();//Example (async & await)functiondelayResult(){returnnewPromise(resolve=>{setTimeout(()=>{resolve(‘Done’);},5000)})}asyncfunctiongetResult(){let result =awaitdelayResult();return result;}getResult();//New Example constdata=async()=>{const got =awaitfetch('https://jsonplaceholder.typicode.com/todos/1');console.log(await got.json())}data();
//Async function (JAVASCRIPT)//async function have 1 main purpose://Being able to use 'await' in a functionfunctionexample(){returnawaitfetch('https://mysite.com/api');//error}asyncfunctionsmartexample(){returnawaitfetch('https://mysite.com/api');//mhmm!}
// example of async and await in javascript// First create promiseletmyPromise=()=>{returnnewPromise((resolve, reject)=>{setTimeout(()=>{resolve('Yay, I resolved!')},1000);});}// async without await keywordasyncfunctionnoAwait(){let value =myPromise();console.log(value);}// async with await keywordasyncfunctionyesAwait(){let value =awaitmyPromise();console.log(value);}noAwait();// Prints: Promise { <pending> }yesAwait();// Prints: Yay, I resolved!
fetch('coffee.jpg').then(response=>{if(!response.ok){thrownewError(`HTTP error! status: ${response.status}`);}else{return response.blob();}}).then(myBlob=>{let objectURL =URL.createObjectURL(myBlob);let image =document.createElement('img');
image.src= objectURL;document.body.appendChild(image);}).catch(e=>{console.log('There has been a problem with your fetch operation: '+ e.message);});