前端面试总结05-异步

1.单线程和异步:

(1:JS是单线程语言,只能同时做一件事

(2:浏览器和Nodejs已支持JS启动进程,如WebWorker

(3:JS和DOM渲染共用同一个线程,因为JS可修改DOM结构

2.单线程与异步:

(1:遇到等待(网络请求,定时任务)不能卡住,故需要异步(回调callBack函数形式

3.异步与同步:

(1:基于JS是单线程语言

(2:异步不会阻塞代码执行

(3:同步会阻塞代码执行

异步:

 

 

 同步:

 

 

异步 应用场景:

(1:网络请求,如AJAX图片加载

 

 

 

(2:定时任务,如setTimeout

 

 

 

promise产生的原因:

为了解决callback hell

 

手写promise加载一张图片

function loadImg(src){

const p = new Promise(

(resolve,rejecct)=>{

const img = document.createElement('img')

img.onload=()=>{

resolve(img)

}

img.onerror = () = >{

const err = new Error(`图片加载失败${src}`)

reject(err);

}

img.src=src;

}

)

return p;

}

 

posted @ 2022-09-22 20:25  qwq萌新  阅读(28)  评论(0)    收藏  举报