JavaScript学习笔记四

这篇博客探讨了JavaScript中的同步与异步区别,通过实例解释了如何手写Promise加载图片。文章强调了前端中使用异步的场景,如网络请求和定时任务,并讨论了单线程与异步的关系。最后,文章深入分析了回调地狱与Promise解决的问题,展示了Promise如何以更清晰的方式组织异步代码。
摘要由CSDN通过智能技术生成

异步和单线程

一、同步和异步的区别

answer:

  1. 异步是基于JS 单线程
  2. 异步不会阻塞代码的执行
  3. 同步会阻塞代码的执行

二、手写用Promise 加载一张图片

answer:

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 = 'http://123.57.52.29:8090/upload/2020/3/Pawel%20Nolbert%20%202017-06-13%2002-09-25-2ac8cd6e79794e57a6cdb1e4b7a05e76.jpg'
const url2 = 'http://123.57.52.29:8090/upload/2020/3/Ryan%20Stone%20%202018-08-24%2002-47-49-3390c5dfb2e74bd8a8b964561fcb55e9.jpg'

loadImg(url1).then(img1 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值