js Promise
2021/7/28 6:06:00
本文主要是介绍js Promise,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
好久没有写js了,最近需要做一个前端项目,复习了以下,分享个人的见解,仅供参考
Promise
Promise是es6提供的特性,JS本身是单线程的,js引擎线程,称为主线程,但浏览器也提供了多个线程完成异步操作。
首先看一个简单的示例
let p1 = new Promise((resolve,reject)=>{ //do some thing setTimeout(()=>{resolve()},1000) })
Promise用以对异步的操作进行管理,异步任务成功,我们便调用resolve【解决】,否则我们调用reject,即告知操作失败。
promise就是一个状态机,有三个状态:
1、初始状态 pending
2、操作成功 fulfilled
3、操作失败 rejected
状态变化后,调用对应的回调函数
在浏览器的控制台输入以上创建Promise的代码,并且让浏览器打印p1
>p1 Promise {<fulfilled>: undefined} [[Prototype]]: Promise catch: ƒ catch() constructor: ƒ Promise() finally: ƒ finally() then: ƒ then()
可见。p1 是Promise对象,其一被创建后便开始运行,状态已经是fulfilled,因为setTimeout过后,调用了resolve,继而调用then方法,处理操作成功之后的逻辑,否则调用catch函数
最后附上个人理解的状态转移图
这篇关于js Promise的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-30React Native常用组件-点击组件
- 2024-05-30uniapp+vue3+uv-ui手机端后台OA管理模板
- 2024-05-29Python网络爬虫的时候json=就是让你少写个json.dumps()
- 2024-05-27React Native常用组件-展示组件
- 2024-05-27React Native常用组件-列表组件
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist