前端面试题 - 手写一个Promise

本文探讨了JavaScript中同步与异步的区别,强调异步如何避免代码阻塞。接着阐述Promise作为解决回调地狱的利器,其优势在于改善了代码可读性和调试性。此外,文章还通过实例讲解如何手写一个Promise,并列举了前端异步的常见场景,如网络请求和定时任务。
摘要由CSDN通过智能技术生成

问题一:同步与异步的区别?

JavaScript是单线程语言,同步会阻塞代码执行,异步不会阻塞代码执行。
补充:JavaScript是单线程语言,意味着只能同时做一件事。也就是说,发送请求遇到阻碍时,浏览器会卡住,卡住期间不能滚动、不能点击、不能有动画。异步是基于callback回调函数形式来调用的,每个异步都有回调函数。代码执行的顺序,先执行同步任务,再执行异步任务。

问题二:为什么使用Promise?

Promise解决了callback hell回调地狱的问题。 回调地狱即多层嵌套写法,难以辨识,不利于调试。Promise的优势:串联形式而非嵌套形式,仅一层。写法美观,可读性强,便于理解,便于调试。

问题三:手写一个Promise?

举例通过Promise函数加载图片。

let imgUrl1='https://aaa.com/000.jpg'
let imgUrl2='https://aaa.com/111.png'
// 定义图片加载的函数
function imgUpload(src) {
    
	// 创建Promise实例,切记要return出去。
    const p = new Promise( 
    	// 回调函数,参数是两个函数,resolv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值