- Overview
- Transcript
10.5 More About async and await
We'll wrap up this final section of the course with a look at using multiple awaits in a single async function, and catching errors with try...catch
.
Key terms:
try...catch
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.5 More About async and await
Hi folks, in this lesson, we're going to take a look at Async and Await in a little more detail. Focusing on using Awaits multiple times inside and Async function. Earlier in this chapter, we saw promise chaining in action. While this is an improvement over nested callback functions and the pyramid of doom Awaits can improve our code even further. Let's say that we want to do the same as before. Use the number returned by the numbers API is the basis for a request to the Game of Thrones character API. We use the Await operator on the first call to get API response as we did in the last lesson. When the promise resolves, we can then get the number from the start at the fact and then invoke the get API response function again for the second request. And we can Await this one too. At the end, we can return the second promise object. As you can see, this is much more concise and readable than having multiple then methods chained together. The code is insynchronous but it reads and behaves as if it were synchronous, which simplifies the code enormously. Let's compare this to the original then based code that we used earlier. At the moment, this code is quite expanded, and we could save some space by refactoring it slightly and tidying it up. So this is a bit tidier, and it takes up a few less lines, but still, with Async and Await, we have just a single function. With the original code, we have effectively four callback functions. And let's just go back to the browser and check that everything is working as we expect it to. And we can see the returned Game of Thrones character data logged to the console as we expect. One thing we haven't looked at yet is error handling. With Async and Await it's recommended to use try catch around the Await statements. We can wrap the whole contents of the function in the tripart. In the catch part, we should make sure to throw any error that is caught, otherwise the arrow will not be passed back to the caller properly. We can then add a catch method to where the make request function is called. So now, if we mess up one of the URLs, we should see that an error is thrown. Let's go back to the browser console, and we can see that the error has indeed been thrown. We don't get much information because the get API response function only rejects the promise with the status tags at the error. So in this lesson we looked at how to use the Await operator multiple times inside in Async function. Which is really a convenience to avoid long promise change. We also saw how to make sure that any areas in an Async function are handled correctly using a regular try catch statement. The next section is a brief recap the main themes of the course and some closing words from myself. Thanks for watching.