The most common issue I’ve seen beginners face when learning Javascript is its asynchronous nature. Understandably of course, as it’s considerably different from writing fully synchronous code, which is what is usually taught first. My goal with this article is to provide a comprehensible and easily approachable explanation for newcomers to Javascript or asynchronous programming in general. Take the following sample: const add = (a, b) => { return a + b; }; const result = add(20, 10); return result; In it, the interpreter does the following: