formattor

单线程

js是单线程语言

js与DOM渲染之能用一个线程

异步

不会阻塞代码执行

使用场景

  1.网络请求

  2.定时任务

回调地狱callback hell

 

问题

1.同步和异步的区别

2.手写promise加载图片

function loadImg(src) {
    const p = new Promise(
        (resolve, reject) => {
            const img = document.createElement(\'img\')
            img.onload = () => {
                resolve(img)
            }
            img.onerror = () => {
                const err = new Error(`图片加载失败 ${src}`)
                reject(err)
            }
            img.src = src
        }
    )
    return p
}

const url1 = \'https://img.mukewang.com/5a9fc8070001a82402060220-140-140.jpg\'
const url2 = \'https://img3.mukewang.com/5a9fc8070001a82402060220-100-100.jpg\'

loadImg(url1).then(img1 => {
    console.log(img1.width)
    return img1 // 普通对象
}).then(img1 => {
    console.log(img1.height)
    return loadImg(url2) // promise 实例
}).then(img2 => {
    console.log(img2.width)
    return img2
}).then(img2 => {
    console.log(img2.height)
}).catch(ex => console.error(ex))

 

3.异步使用场景

  网络请求

  定时任务

分类:

技术点:

相关文章:

  • 2021-07-27
  • 2021-05-24
  • 2021-08-05
  • 2021-10-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-03-14
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
相关资源
相似解决方案