什么是代码阻塞
什么是代码阻塞?
代码阻塞与不阻塞各有各的优缺点,没有好与坏,具体情况由需求来定
是否阻塞与是否同步是两个不同维度的概念,有时间再深究
- 阻塞代码
const fs = require('fs')
let data = fs.readFileSync('../劝学.txt')
console.log(data.toString()); //先输出
console.log('程序执行完毕'); //后输出
//这个就是正常的执行顺序
- 非阻塞代码
const fs = require('fs')
fs.readFile('../劝学.txt',(err, data) => {
console.log(data.toString()); //后输出
})
console.log('程序执行完毕'); //先输出
//就是说 没有堵住,就跟回调函数一样的,会放进任务队列
- 还有一个非阻塞代码
axios.get('xxx').then(res=>{
cls('xxx')
})
cls('1111') //先输出
//现在知道Promise为什么解决了回调地狱了吧,Promise没出来之前,就只能用回调函数达到这种需求。
这一路,灯火通明