js是一个异步开发语言
什么是异步呢,很好理解,一般的我们的代码执行的顺序是同步的,也就是执行完这条代码再执行下一条代码,而异步就是我们在某个时间点执行某个代码,而不是顺序执行
创建一条我们比较熟的预加载,这里就是一个典型的异步操作
var set=new Set();
for(var i=2;i<5;i++){
var img=new Image();
img.src="./img/"+i+"-.jpg";
img.addEventListener("load",loadHandler);
}
function loadHandler(e){
set.add(this);
if(set.size===3){
console.log("全部加载完成")
}
}
还有一些比较常见的封装好的函数,也是异步擦欧洲哦
setTimeout();
setInterval();
requestAnimationFrame();
console.log("a");
for(var j=0;j<1000000000;j++){
}
console.log("b");
Promise
一般程序员的思维就是不产生异步代码,让代码按顺序执行下去,于是就会出现在一个函数中不断回调我们所需要的代码,这样就会产生回调地狱,回调地狱会让代码一直往下沉,永远跳不除这个地狱中。
典型的回调地狱,因为我想让图片1加载完再加载图片2,然后图片3,4,