All Articles

Async/Await in JavaScript

Async/Await is a syntax to use promise. I find it easier to use than then, and your code looks somewhat more straight-forward if you use async/await.

if you don’t await, your async function will return a promise instead of the value you expected by calling a function/method. And you can only await inside an async function because it is used for asynchronous programming.

const getTrack = async () => {
  const audioStream = await mediaDevices.getUserMedia({ audio: true });
  const audioTrack = audioStream.getAudioTracks()[0];
};

in the code above, I am awaiting for the result of mediaDevices.getUserMedia({ audio: true }) in order to use the return value of the method. If I don’t await for it, I get a promise instead of the value that I want. And if I were to use console.log to check the value assigned to audioStream, it will be undefined.

If you use the conventional .then method, the code above is equivalent to this:

const getTrack = () => {
  mediaDevifes.getUserMedia({ audio: true }).then((audioStream) => {
    const audioTrack = audioStream.getAudioTracks()[0];
  });
};

If you were to only think about .then, async/await could be just merely a change of syntax, but async/await is a lot more useful since it allows you to use a promise.

Aug 23, 2019

AI Enthusiast and a Software Engineer