欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

promise初认识

程序员文章站 2022-07-02 22:32:19
...

promise的定义

代表了未来某个将要发生的事件(通常是一个异步操作)

promise是一个对象,对象和函数的区别就是对象可以**保存状态**,函数不可以(闭包除外)

promise作用

这个东西本质上就是为了解决回调地狱而出现的,作用就是解决回调地狱。

原理: 可以将异步操作以同步的流程表达出来 , 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。可以在对象之间传递和操作promise,帮助我们处理队列
回调地狱:(是指写的代码层次过多的时候,比如做ajax的时候需要根据上一步的数据逐步请求数据的时候,若是单纯的使用回调函数则会造成反复的嵌套,从而使得很难进行二次维护和解读)

promise对象

有三个状态:

  • 初始化状态(等待状态):pending
  • 成功状态:fullfilled
  • 失败状态:rejected

promise的使用方式

//resolve -->解决问题 --->事情异步成功完成
//reject ---> 拒绝 --->事情异步操作失败

//首先创建一个新的promise对象(起始状态为pending)
var p1 = new Promise(function(resolve,reject){
    //开始执行异步操作
    if(true){
        resolve("数据请求完成")
        //请求成功的时候promise状态会变为fullfilled
    }else{
        reject("数据请求失败")
        //请求失败的时候promise状态会变为rejected
    }
})
console.log(p1)

//resolve,reject这两个函数都是可以向.then传递参数的
p1.then(function(res){
    //如果执行成功则会直接调用这里的代码
    console.log(res)
},function(err){
    //如果执行成功则会直接调用这里的代码
    console.log(err)
})

p1.catch(function(err){
    console.log("catch:",err)
})

//finally没有参数
p1.finally(function(res){
    console.log("finally:",res)
})