Skip to main content

Javascript event-loop and Nodejs event-loop.


The Event Loop in the Browser or Node is not part of V8. The Event Loop Is Part of a different application/dependency/library which is provided by the Browser or Node.

They do not use V8's event loop.

V8 does implement an event loop, it is there. However, it is meant to be overridden or replaced, which is something both Chrome and NodeJS happen to do.

The Nodejs event loop implementation differs from the browser-based event loop one. While Nodejs uses the Google V8 as its runtime, it does not use V8 to implement the event loop. Nodejs uses the Libuv library (written in C) to implement the event loop. 

Browser (Chrome): V8 just executes your JavaScript (If and else statements, for statements, functions, arithmetic operations e.t.c) and then hands over operations to Libevent.

In the Browser(e.g Chrome) apart from JavaScript Engine V8 (Chrome uses V8), the browser also contains different applications/dependencies/libraries which can do a variety of things like sending HTTP requests, listening to DOM events, delay execution using setTimeout or setInterval, caching, database storage, and much more. Therefore the Browser (e.g Chrome) uses the dependency Libevent to implement the Event Loop.

Node.js: V8 just executes your JavaScript (If and else statements, for statements, functions, arithmetic operations e.t.c) and then hands over operations to Libuv. JavaScript by default does not have support for networking and file system operations. Libuv works with V8 so that V8 will run the JavaScript and Libuv will handle I/O tasks. In Node.js apart from JavaScript Engine V8, Node also contains different applications/dependencies/libraries that can do a variety of things such as Networking, File System Operations, Listen To System Events, delay execution using setTimeout, setInterval, setImmediate, process.nextTick, and much more. Therefore Node.js uses the dependency Libuv to implement the Event Loop.

Node's event loop sit idle if there are no tasks in the callback queue (phases), but Chrome's event loop keeps running

Chrom's event loop is like a merry-go-round while Node's event loop is like a Roller coaster

Source:
Stackoverflow


Comments

Popular posts from this blog

Coding Interview Questions Set 1

From this article, I will be sharing with you all a series of articles on coding interview questions. So please stay connected for the latest set of questions. It will be a good brainstorming exercise and will also prepare you for coding interviews and will definitely boost your confidence. So let's start, 1)Reverse of a string with only O(1) extra memory. Solution: var reverse = function(string) {     let result = ''     for(let i= string.length -1; i >= 0; i--){         result += string[i];     }     return result; }; 2)Fizz Buzz: Write a program that will accept a number n and will output number till n but for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”. Solution: var fizzBuzz= function(n) {     const arr=[]     for(i=1; i<=n; i++){ ...

Node.js: Bundling your Node.js application to single executable for Windows.

In this article, we will see how to bundle Node.js application to a single executable for Windows. What's the need? Well recently, I had taken a work where I needed to convert pdf's(Of similar format) to excel sheet. So I was reading the pdf's from a folder in desktop and I was storing the output excel sheet into a separate folder on the desktop. I used Node.js for the program. Now the client wanted it to install the program on 25 windows machine and his budget was really low. So it was also not possible for me to install node.js for 25 machines and then install the required dependency for each one. One of the solution: While I was searching for an easy solution I found this amazing npm module pkg . This module can make your node.js app work like plug and play type. No need to install Node.js on the client machine or any other dependency.  It helps to make a commercial or trial version of your node.js application without exposing the source code. I found ...

Understanding TypeScript: A Guide to Interview Questions

1) Advantages of TypeScript TypeScript offers several advantages over plain JavaScript: Static Typing: TypeScript introduces static typing, allowing developers to define types for variables, function parameters, and return values. This helps catch type-related errors during development and provides better code documentation. Enhanced Tooling: TypeScript provides improved tooling support, including features like code completion, refactoring, and navigation, which enhance developer productivity. Readability and Maintainability: With explicit type annotations, TypeScript code tends to be more readable and self-documenting. This makes it easier for developers to understand and maintain large codebases. Early Error Detection: TypeScript's type system catches many common errors at compile-time, such as type mismatches and missing properties, reducing the likelihood of runtime errors. Example: typescript Copy code // Plain JavaScript function greet(name) {     return 'Hello, ' + n...