Async Functions in JavaScript with 'async' and 'await'
Asynchronous programming is crucial in JavaScript's model. When asynchronous operations finish, executing additional code afterward is common. Previously, callbacks were utilized for this purpose. However, nesting callbacks can lead to "callback hell."
Promises
Promises ameliorated the problems associated with nested callbacks. They enable chaining through "promise chains," which provide cleaner syntax and error handling. For instance:
<code class="javascript">const randomProm = new Promise((resolve, reject) => { if (Math.random() > 0.5) { resolve('Succes'); } else { reject('Failure'); } }); // Promise chain randomProm .then((value) => { console.log('inside then1'); console.log(value); return value; }) .then((value) => { console.log('inside then2'); console.log(value); return value; }) .catch((value) => { console.log('inside catch'); console.log(value); });</code>
'async' and 'await' Keywords
Asynchronous functions, also known as "async functions," were introduced to further simplify asynchronous programming. These functions are prefixed with the async keyword and allow the use of the await keyword.
await pauses the execution of the asynchronous function until the expression inside it (usually a Promise) settles. The function resumes once the expression resolves. For example:
<code class="javascript">async function myAsyncFunc() { try { const result = await randomProm; console.log(result); } catch (error) { console.log(error); } } myAsyncFunc();</code>
In this example, myAsyncFunc is an async function that awaits the result of the randomProm Promise. Once the Promise resolves or rejects, the corresponding branch of the try/catch block is executed. By utilizing async and await, we eliminate the need for complex callback logic and enhance code readability.
The above is the detailed content of How to Use 'async' and 'await' for Smooth Asynchronous Programming in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!