Skip to content

atlc/async-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asynchronous Code Drills

The purpose of this lab is to practice Asynchronous JavaScript concepts discussed in the video lectures. You'll want to feel comfortable writing your own functions that return new Promise objects, write setTimeout functions, and using .then()/.catch(). Steps Setup

Make sure all the html has loaded before using JavaScript
Create a new project folder and connect it to a github repository. Copy this README.md file into it.
Create an index.html file and an app.js file and link the two together.

Timing Out

Create a function that takes a string message as an argument, and logs that message to the console
Now call your function with a message
Use setTimeout to call your function again, but with a different message and after 2 seconds
    Hint: If you both of your messages log at the same time, look at the syntax of a setTimeout. You'll need to call your function within an anonymous function the timeOut executes.
Create a new function called getWords that will attempt to do the following using several setTimeout calls:
    Log a word instantly
    After 3 seconds, log another word
    After 2 seconds, log another word
    After 1 second, log a final word

Callbacks and Recursion

Create a function called done that logs Job's done! to the console
Create a different function (on the global scope) called countdown that accepts two arguments, num and callback
    The goal of this function will be to log a "countdown" from the number passed in as an argument, delayed by 1 second each time, and when it gets to 1, it should execute the callback argument
    Hint: You'll need one setTimeout for this to work, an if/else statement, and NO for loop for this to work
    Super Hint: You'll need to call countdown within itself, a concept called recursion
    Mega Hint: There's a YouTube vid showing the concept off
Call the countdown function and pass it two arguments: a number of seconds to countdown from and the done function and see if it works

Promises Promises ;)

Create a new global variable called lunchTime with a value of true
Create a new function called orderMeSomeFood that returns a new Promise
    Hint: If you're unsure of the correct syntax, check out this CodePen
In the resolver function of the Promise, write logic to check if the lunchTime variable is true
If lunchTime is true, create an object with two properties and values (key/value pairs) of your choice:
    lunch: "your favorite lunch"
    drink: "your favorite beverage"
Resolve the Promise with your object
If lunchTime is false, create a variable and set it equal to a new Error that has your own message
    Hint: Check out this page on how to use a new Error
Reject the Promise with your new Error
Call your orderMeSomeFood function, chain you .then and don't forget your .catch
If the promise within the function resolves, it should then log the object it resolved with
Swap lunchTime to false, and then the promise should reject with your custom created error and be logged from you .catch
Toggle lunchTime and check out the results of your newly created Promise function.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published