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-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略