From Promiseland

From Promiseland

Let the adventure begin!

Before we get to the land of Observables, let's depart from Promiseland (in all fun, you can absolutely use Promises and async/await with Observables).

A Promise is a promise

const p = new Promise((resolve) => {
  setTimeout(() => {
    resolve('Hello from Promiseland!');
  }, 1000);
});

p.then((value) => console.log(value));

See the example on codesandbox

Let's quickly review:

  • First, we create a new Promise.
  • The constructor() function requires a single parameter, the executor function.
  • The executor is a function that receives two functions as parameters — first, the resolutionFunc function, and second, the rejectionFun function.
  • When newed-up, the constructor() function returns a new promise object.
  • Within the resolutionFunc we have created a new timeout that will invoke the resolve() function provided after 1000 ms.
  • Finally, we log out the value produced using the .then() method on the promise object.

A few things to note:

  • First, promises are always asynchronous (and thus a microtask).
  • Second, the promise resolves after 1 second.
  • Third, we are not currently handling an potential errors. But, we could use the catch() method to do so.