什么是回调
函数调用的三种:同步调用、回调、异步调用
回调是一种双向调用模式
可以通过回调函数来实现回调
阻塞和非阻塞
阻塞和非阻塞关注的成熟在等待调用结果(消息,返回值)时的状态
阻塞就是做不完不准回来
非阻塞就是你先做,我再去看看做点其他事 ,完了告诉我一声
通过回调函数来实现回调
// 阻塞时代码
// 比如读取文件时是没有办法干其他事的
const fs = require('fs');
const data = fs.readFileSync('data.txt'); //阻塞式读取 不带sync就是异步读取。
console.log(data.toString());//如果不转成字符串会转成二进制的代码
必须等待读取完成才会执行下一步的代码。
// 非阻塞代码
const fs = require('fs');
fs.readFile('data.txt', function(err, data){
if(err){
return console.log(err);
}else{
return console.log(data.toString());
}
});// 异步调用 匿名函数就是当读取完之后要做什么 这个就是回调函数
console.log('代码执行完毕');
代码执行完毕
Abcdefg
非阻塞代码是不需要等待的。