promise

本文深入解析Promise在JavaScript中的作用,介绍了其构造函数、状态、API分类(静态与原型),以及.then、.catch和.finally的使用。重点展示了如何通过链式调用解决异步问题,包括promise.all的应用和其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

promise 是什么?

1.抽象表达:是一门新的技术,是js中进行异步编程的新的解决方案

(异步编程(操作)包括):

* fs文件操作

* 数据库操作

* ajax

* 定时器等

2.具体表达:

1.从语法上来讲 是一个构造函数

2.从功能上来讲的话  就是用来封装一个异步操作并且可以获取成功或者失败的结果值

 promise 程序执行的特点

 1. new promise中的回调函数是同步执行的

 2.原型方法中的回调函数,都是异步执行的,属于异步消息队列中的微任务

promise有三种状态

- pending 进行中  初始状态 既没有被实现  也没有被拒绝

- resolve/fulfilled 已接受  意味着操作完成

- reject 已拒绝  意味着操作的失败

 promise api 分类

- 静态api

- 原型api

- 所有的api执行后返回值都是新的promise实例,只要是promise实例就可以使用原型方法

- 静态方法只能同promise构造函数使用

原型方法

原型方法通常是由promise实例对象触发。

分类

- then 监听promise实例对象的变更 主要监听变为已接受

- catch 监听promise实例已拒绝的状态

- finally  监听链式调用中最后的一个状态

注:原型方法还支持链式调用 原型方法的callback是异步执行的,属于微任务

.thenCallback

- 触发条件 当promise状态变为 fulfilled

- 形参来源 resolve 函数形参 或者上一个then return

静态方法

- promise.all()同时监听多个promise实例的状态变更,所有的promise都变为已接收

> promise.all捕获reject不是绝对的 如果单个promise中 捕获了catch,promise.all不会捕获catch

promise 应用

> 只要是异步程序都可以使用promise 例如  发送网络请求

> 解决异步bug,----> 异步问题同步化

特点

- 优点将传统的回调函数实现异步变为.then的链式调用

- 确定 then 可以一直执行 并且也没有提高太大的代码可读性


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值