Асинхронное поведение, если у нас есть две строки кода Строка-1, за которыми следует Строка-2. Строка-1 - это трудоемкая инструкция. Поэтому Line-1 начинает выполнять свою инструкцию в фоновом режиме (как процесс-демон), позволяя Line-2 начать выполнение без необходимости ждать, пока Line-1 завершит работу sh. Нам нужно такое поведение, когда дела идут медленно. Синхронное выполнение кода может показаться простым, но может быть медленным. Такие задачи, как обработка изображений, могут быть медленными, файловые операции могут быть очень медленными, выполнение сетевых запросов и ожидание ответа определенно медленными, а выполнение огромных вычислений, таких как итерация свыше 100 миллионов для -1 oop, несколько медленное. Поэтому такие медленные вещи в стеке вызовов приводят к «блокированию». Когда стек вызовов заблокирован, браузер предотвращает выполнение прерываний пользователя и других операторов кода до тех пор, пока оператор блокировки не будет выполнен и стек вызовов не будет освобожден. Следовательно, асинхронные обратные вызовы используются для обработки таких ситуаций.
ex:
console.log("Hello");
setTimeout(function(){ console.log("Susi");},2000);
console.log("Iam");
o/p: Hello, Iam susi.
В вашем примере сначала будут напечатаны операторы консоли, потому что process.next будет выполняться на следующей итерации события l oop, а затем setimmediate. благодаря этому вы получаете вывод, как показано ниже.
1
2
inside for loop
inside nextTick
inside setImmediate