一、概念
同步:如果一个内容执行时需要时间,那么暂时不会执行下一个,而让当前内容执行完成后再执行下一个。
异步:如果有需要时间处理的内容,我们同时再去处理别的内容。如果某个处理完成执行对应语句块。
二、各种操作
1.async:执行异步加载
defer:DOM渲染完成后执行有defer的内容。
2.标签基本都是同步的,但是图片创建一个图片容器,然后加载是异步
3.当打开页面时,实际上同步代码基本已经执行完成,后面的交互等操作一定晚于同步执行的代码
4. setTimeout setInterval Promise这些都是异步
setTimeout(callback,3000,2);//3000ms后执行callback函数,代参2
5. 事件中load error readystatechange 是异步
三、promise解决回调地狱
基本格式:
var p=new Promise(function(resolve,reject){
resolve();//成功时调用resolve
reject();//失败时调用reject
// Promise不允许同时执行两个,当执行,第一个时,第二就不会被执行了
});
p.then(function(){
// resolve 就会执行这个函数
},function(){
// reject 就会执行这个函数
})
p.then(function(){
// resolve 就会执行这个函数
}).catch(function(){
// reject 就会执行这个函数
})
Promise.all();//按照顺序执行Promise的列表
Promise.race();//谁先执行resolve就先完成
Promise.resolve();//
Promise.reject();
promise 是什么,怎么运行,长什么样,有哪些方法,解决什么问题