# 异步跟同步

# 异步和单线程

# 题目

# 同步和异步的区别是什么

  • JS 是单线程语言,只能同时做一件事
  • 浏览器和 nodejs 已经支持 JS 启动进程,如 Web Worker
  • JS 和 DOM 渲染共用同一个线程,因为 JS 可修改 DOM 结构
  • 遇到等待(网络请求,定时任务)不能卡住
  • 需要异步
  • 基于 JS 是单线程语言
  • 异步不会阻塞代码执行
  • 同步会阻塞代码执行
console.log(100)
setTimeout(() => {
  console.log(200)
}, 1000);
console.log(300)

# 回调 callback 函数形式

# 手写用 Promise 加载一张图片

# 前端使用异步的场景

  • 网络请求,如 ajax 图片加载
// 图片加载
ocnsole.log('start')
let img = document.createElement('img')
img.onload = function () {
  console.log('loaded')
}
img.src = '/xx.png'
console.log('end')
  • 定时任务,如 setTimeout、setInterval

评 论:

更新: 11/21/2020, 7:00:56 PM