- Overview
- Transcript
10.3 The async Keyword
In this lesson we'll learn about the async
keyword, including where we can use it and what happens when we do.
Key terms:
async
1.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00:43
10.3 The async Keyword
Hi folks. In this section, we're going to take a look at the ES8 Aysnc function. Before we start looking at code, I'm just gonna make some space in the editor here. I'm going to collapse this function. And I'm just going to comment out the promise chain from the last lesson. An Aysnc function is similar in many ways to a regular function with just a few subtle differences. To create an Async function, we just depend the async keyword to the start of the function like this It's just like a regular function declaration in that it has an identifier, can accept arguments and can return a value. In this case, it just returns the value that we passed to it. But one of the things that differentiate async functions from regular functions is that they always return a promise. In this case, we aren't specifically returning a promise. And we aren't really doing anything asynchronous inside the function, but it will still return a promise. Which will resolve immediately with the value we explicitly returned from the function. So, let's take a look in the browser now. And we should see in the console that the value we pass to the function is indeed written to the console. If the function does actually do something asynchronous, the promise it returns will be resolved when the promise settles in the normal way for a promise. Or it will reject if an error occurs. So that's one important fact of Async functions. They always return a promise. The other main feature of async functions is that they enable the use of the await operator. We'll look at this in more detail in the next lesson. The only thing to note at this point is that while the await operator does change how async functions work, it's not essential to use. Async functions that don't make use of await are perfectly fine as we've seen here. In terms of support, all current mainstream browsers support it, except for Internet Explorer. There are polyfills that can help if you need to support IE 11, but the one you should use is largely dependent on which frameworks or build tools that you're using. In the last lesson, we saw how to make use of promise chaining. This is a useful feature to know, which addresses an issue with callbacks, where the indentation slowly builds up inside large functions. However, this can still not be optimal in some situations. This is the reason why async functions were created to simplify the structure of multiple asynchronous actions. So in this lesson we looked at Async functions, which we learned are similar to regular functions, except for two main differences. The first difference is that Async functions always return a promise. Even if an async function doesn't explicitly return a promise, it will wrap the return value in a promise and resolve it immediately. The second feature is that it enables the use of the await operator, which we'll learn more about in the next lesson. Thanks for watching.