Javascript

js Promise

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!