前端面试题:对promise的理解

本文介绍了Promise在前端开发中的作用,强调其能简化异步操作,避免回调地狱。同时提到Promise的缺点,包括不可取消、内部错误难以捕获及Pending状态的不确定性。文中详细解释了Promise的三种状态:Pedding、Fulfilled和Rejected,并通过实例展示了如何使用then和catch处理成功与失败的情况。
摘要由CSDN通过智能技术生成

优点:可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。

缺点:

  1. 无法取消Promise,一旦新建它就会立即执行,无法中途取消。
  2. 如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。
  3. 当处于Pending状态时,无法得知目前进展到哪一个阶段。

promise内部有三种状态,pedding,fulfilled,rejected:

  1. pedding表示程序正在执行但未得到结果,即异步操作没有执行完毕。
  2. fulfilled表示程序执行完毕,且执行成功。
  3. rejected表示执行完毕但失败;这里的成功和失败都是逻辑意义上的;并非是要报错。

    promise和回调函数一样,都是要解决数据的传递和消息发送问题,
    promise中的then一般对应成功后的数据处理,catch一般对应失败后的数据处理。

举个怀孕例子如图所示:
在这里插入图片描述
script代码:

//先创建变量ispregnant,赋值布尔值,表示是否怀孕
const isPregnant = true;
//创建promise变量,new一个promise
//promise里面实行一个函数,可以传入两个参数,分别是resolve和reject
const promise = new Promise((resolve,reject) => {
   
	//用if来判断,怀孕了就用resolve表示,孩子他爹为成功的值
	//失败了就用reject表示,老公为失败的值
	if(isPregnant) {
   
		resolve('孩子他爹'
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值