The key to understanding javascript promises... is to think of them sort of like how you think of promises in your actual life

A promise in JavaScript is similar to a promise in your real life. -javascript ninja master
Once it has been set, it usually lies within 3 different states. For example:
1. pending promise, which is similar to the initial state
2. fufilled promise - when the promise has been made and satisfied
3. rejected promise - meaning it was unfufilled or failed