同步异步 , 举个例子来说,一家餐厅吧来了5个客人,同步的意思就是说,来第一个点菜,点了个鱼,好, 厨师去捉鱼杀鱼,过了半小时鱼好了给第一位客人,开始下位一位客人,就这样一个一个来,按顺序来
相同, 异步呢,异步的意思就是来第一位客人,点什么,点鱼,给它一个牌子,让他去一边等吧,下一位客人接着点菜,点完接着点让厨师做去吧,哪个的菜先好就先端出来,
同步的优点是:同步是按照顺序一个一个来,不会乱掉,更不会出现上面代码没有执行完就执行下面的代码, 缺点:是解析的速度没有异步的快;
异步的优点是:异步是接取一个任务,直接给后台,在接下一个任务,一直一直这样,谁的先读取完先执行谁的, 缺点:没有顺序 ,谁先读取完先执行谁的 ,会出现上面的代码还没出来下面的就已经出来了,会报错;
例子 1
猜猜控制台中会打印的是什么内容 和什么顺序
在终端里可以看见打印出来的结果
node中执行的就是异步,我们打印的顺序应该来是是 0 a 2 猜对啊,但打印出来的顺序是0 2 a ,因为在node中是异步执行的,0在最前面肯定先打印,这个不用想,a这个是我把接来的任务放后台,让后台执行去,不管有没有执行好,执行下面的代码,那么2的话打印肯定很快的,执行到2 ,2就打印出来了,打印肯定比a读文件然后回调函数在打印要快,然后才到a,a执行完成才打印出来, 要是感觉不懂,就看看什么的比喻在读代码。