1-1 进程和线程
1-2 知识点
1.单线程和异步2.callback3.应用场景4.Promise5.event-loop6.async/await7.微任务/宏任务
1-3 单线程和异步
1.JS是单线程语言,只能同时做一件事2.浏览器和node.js已支持JS启动进程。3.JS和DOM渲染公用一个线程,因为JS可修改DOM结构。4.遇到等待(网路请求,定时任务)不能同步。5.需要异步6.回调callback函数形式
因为JS是单线程语言,所以遇到等待(网络请求,定时任务)不能卡顿,所以需要异步。
异步
console.log(1);setTimeout(()=>{console.log(2)},1000)console.log(3)# 异步任务是通过callback回调函数的形式调用的,异步任务不会阻塞线程。
同步
console.log(1);alert(2)console.log(3)
1-4 异步应用场景
网络请求定时任务
1-5 例子
1.同步和异步的区别异步是基于JS单线程的语言,它不会阻塞代码的运行。而同步会阻塞代码的运行。
2.手写promis加载一张图片function loadImage(src){return new Promise((resolve,reject)=>{var img = document.createElement("img");img.src = src;img.onload = function(){resolve(img);}img.onerror = function(){reject(new Error(`图片加载失败${src}`))}})}loadImage(src).then(res=>{console.log(res.width)}).catch(err=>{console.log(err)})
setTimeout(()=>{console.log(1)},1000)setTimeout(()=>{console.log(2)},0)console.log(3)
