What Is The Difference Between Synchronous Vs Asynchronous In Node.js
Tags: node, javascript, programming, webdev
Published: 2023-01-07 14:42:05

Synchronous and asynchronous are two different programming paradigms that can be used to write code in Node.js. In this blog post, we'll take a closer look at the differences between synchronous and asynchronous code, and when it's best to use each approach.

**What is Asynchronous?**
Every instruction in the code executes sequentially after waiting for its predecessor to do so, as we saw in the synchronous code example. Because of the nature of synchronous programming, crucial instructions might occasionally get delayed by some earlier instructions, which delays the user interface. Asynchronous code execution enables the quick execution of subsequent instructions and avoids blocking the flow of execution due to earlier instructions.

**What is Synchronous?**
Because synchronous code stops the application until all the resources are accessible, it is often known as "blocking."
Synchronous execution usually uses to code executing in sequence and the program is executed line by line, one line at a time. When a function is called, the program execution waits until that function returns before continuing to the next line of code.

## 
Synchronous Code in Node.js for Reading from a File

Take a look at the following coding example, where data is read from the file.txt file using synchronous Javascript. Here, the readFileSync() method is being used, which operates synchronously and without making any promises.

```
const fs = require("fs");

try {
  // Storing the data form file.txt file in data
  const data = fs.readFileSync("./file.txt", "utf8");
  console.log(data); // To show the data
} catch (error) {
  console.error(error); // if error is catched
}
```

## Using Asynchronous Code to Read From a File in Node.js

Node.js functions are often non-blocking (asynchronous) by default, and asynchronous functions are able to perform more actions while they wait for IO resources to become available.

```
const fs = require("fs");

// Making asynchronous call to read the file
fs.readFile("./file.txt", "utf8", (error, data) => {
  if (error) return console.error(error); // if error occurred
  console.log(data); // showing the data
});
```

## How to choose between asynchronous and synchronous 

It may be useful to think about asynchronous programming as flexible and synchronous programming as rigid when determining which strategy to use. The multitasker, asynchronous programming switches between tasks and notifies the system when they are finished. Synchronous programming works like a one-track mind, completing each task in a set order.

By enabling additional tasks to be completed concurrently, asynchronous programming is frequently used to improve user experience by delivering an easy-to-use, quick-loading flow.

The optimum use of synchronous programming is in reactive systems. Despite the fact that developers can write code more easily and that sync is supported by all programming languages, sync consumes a lot of resources and might cause delays.

[Read More](https://blog.thesimplifieddev.com/synchronous-vs-asynchronous)