এই প্রোগ্রাম যদি V8 ইঞ্জিনের কাছে যায় তাহলে কি ঘটবে? প্রথমের কনসোল লগ করার ফাংশনটি যেহেতু ব্লকিং অপারেশন নয় সেহেতু খুব দ্রুতই কল স্ট্যাক সেটাকে এক্সিকিউট করবে এবং আউটপুট Hello লগ হবে। এরপর, কল স্ট্যাকে setTimeou() ফাংশনটি জমা হবে। এর মধ্যে যখন ঢুকবে তখন সেখানে ব্রাউজারের প্রোভাইড করা একটি স্পেশাল ফাংশন বা এপিআই কল পাওয়া যাবে। এর মধ্যে আছে একটি কলব্যাক ফাংশন। কিন্তু এটি কোন ইভেন্টের সাথে জড়িত না। এক্ষেত্রে ইভেন্ট হিসেবে ধরা যেতে পারে ৩ সেকেন্ডের একটি টাইমারকে। তো, সেই ফাংশনকে ব্রাউজার একটি টাইমারের সাপেক্ষে অপেক্ষা করাবে। (উপরের ফিগারে ডান দিকে যে লালচে পার্ট টুকু দেখা যাচ্ছে সেখানে এটি ঘটবে। ওই এরিয়াকে Web API এরিয়া মনে করে নিতে পারেন যা জাভাস্ক্রিপ্ট রানটাইমের জন্য ব্রাউজারের পক্ষ থেকে একটি সুবিধা মূলক ফিচার।) ইতোমধ্যে কল স্ট্যাক থেক setTimeout ফাংশন সরে যাবে (যেহেতু ওটার মধ্যে আর কিছু নাই বা রিটার্নও নাই) এবং কনসোলে World প্রিন্ট করার জন্য log ফাংশন স্ট্যাকেজমা হবে এবং কাজ শেষ করে প্রিন্টও করবে। অন্যদিকে, ৩ সেকেন্ডের টাইমার শেষ হলে সেই কলব্যাক ফাংশনটি ম্যাসেজ কিউ -এ এসে জমা হবে। এরপর নিরলস ভাবে ঘুরতে থাকা ইভেন্ট লুপ যখনি এটাকে দেখতে পাবে তখনি ধরে কল স্ট্যাকে পুশ করবে আর কল স্ট্যাক এবার পাবে alert() ফাংশনকে এবং এটাকে এক্সিকিউট করে ফেলবে। আর তাই পুরো প্রোগ্রাম রান করার সময় প্রথমে Hello প্রিন্ট হবে, এরপর একটি ব্লকিং বা স্লো অপারেশন থাকা সত্ত্বেও এক্সিকিউশন না থেমে World প্রিন্ট করবে। অতঃপর JS প্রিন্ট করবে। এভাবে আমরা ইভেন্ট লুপের মাধ্যমে asynchronous প্রোগ্রামিং করে কিভাবে নন-ব্লকিং এক্সিকিউশন করা যায় সেটা দেখলাম।