Categories
Code

Creating a Promise

Promises are used for asynchronous code. It is a temporary holder for a value that gets returned by an asynchronous call. For example, a call to a web service might use a promise. You can call the web service with a promise and once it is fulfilled, you can run some code. Here is the syntax…

let myPromise = new Promise(
    function(resolve, reject){
        setTimeout(resolve, 1000, ‘a value’);
    }
);
console.log(myPromise); 

Here we are creating a promise. Within the promise method, we have an anonymous function that is making the promise call. In here is where you might find a call to a web service. In our example, we are simply running a setTimeout function to simulate a call to a service that might take a second. Notice the two parameters in the function…resolve and reject. Those are the two things that can happen to a promise. It can be rejected. We can then handle the rejection, or it can be resolved (fulfilled). This settles the promise and we can programmatically handle the response.

In our code, you should see the promise logged to the console. It is in a pending state because we haven’t settled it. We haven’t done anything with it yet. Feel free to change the resolve to reject in the setTimeout to see the difference.

Happy Coding!

Clay Hess

Categories
Code

Developer Defined Errors

We can also throw our own errors. This is done with the “throw” keyword using the “new” keyword and the Error method. Here is the syntax…

try {
    let animal = newAnimal;
    throw new Error(‘This is a custom error being thrown’);
} catch(error){
    console.log(‘error: ‘, error);
} 

Why would we do this? There might be times when your code logic won’t throw a JavaScript error, but something happens that you want to catch so no issues show up later for the end user. For example, you can test whether a variable has a value and if not, throw an error.

Happy Coding!

Clay Hess

Categories
Code

Finally

We can add another block to try/catch. This is done with the “finally” keyword. What the finally code block does is run always. So even if there is an error, the finally block still runs. It runs regardless if there is an error or not. Here is the syntax…

try {
    let animal = newAnimal;
} catch(error){
    console.log(‘error: ‘, error);
} finally{
    console.log(‘this will always run’);
} 

Happy Coding!

Clay Hess