nodejs异步编程

什么是异步编程

故名思意,不是同步即为异步,那么什么是异步编程呢?
请大家先看以下代码

console.log('start');
setTimeout(()=>{
	console.log('这里的代码2秒后执行...');
},2000);
console.log('end');

执行结果想必大家都能猜得出来,程序执行完毕后:
start
end
这里的代码2秒后执行…

那么大家再来看下面代码

for(let i=0;i<10000;i++){
	console.log(i);
}
console.log('end');

上面代码中,会执行10000次循环,循环结束后,才会执行下面代码;
这个代码就是同步代码,for循环无论执行多久,下面代码都要等待它执行完毕后才会执行。

而最上面的代码却不是这样,那么这是什么原因呢?
原因其实很简单,不仅是nodejs中,还是我们Javascript中都会产生这种现象,要想明白这个原因首先大家
要先搞懂,js代码的执行原理。
在js中,代码会在执行栈中依次执行,如果执行到回调函数,则会把回调函数放入任务队列,等待执行,如果执行栈中的代码执行完毕后,再去依次执行任务队列中的代码。
nodejs也是同样原理。

发布了19 篇原创文章 · 获赞 14 · 访问量 2017

猜你喜欢

转载自blog.csdn.net/qq_45455361/article/details/104078792