ES6-Promise对象

1:什么是promise对象

promise对象是ES6新增的,为了解决回调函数的多层嵌套问题,用于封装异步任务

2:语法

使用构造函数创建Promise对象,参数是一个函数,函数中写异步任务的代码。

参数函数中有两个参数,resolve和reject,这两个参数也是函数。

let promise = new Promise((resolve, reject) => {
    let success = true;
    if (success) {
        //异步任务执行成功时,调用resolve().如果有数据会传给.then回调函数。
        resolve('成功');
    } else {
        //异步任务执行失败时,调用reject().err会传给.catch回调函数。  
        reject('失败');
    }
})
promise.then( 
//为promise对象添加任务成功时的回调函数
  (data) => {
    console.log(data) //成功
}).catch(
//为promise对象添加任务失败时的回调函数
//回调函数会在promise变为失败状态时执行
//如果promise已经是失败状态则会立刻执行。
  (data) => {
    console.log(data) //Promise {<resolved>: undefined}
})

3:两个参数,两种状态,两个回调函数

两个参数:
resolve
reject

两种状态:
resolve(); //resolve(data); 任务成功时状态
reject(); //reject(err); 任务失败时状态

两个回调函数:

then();任务成功时,会执行此回调函数。

catch();任务失败时会执行此回调函数。


PS:详解

1,promise对象,创建之后就会立刻调用异步任务所在函数。

2,promise对象的状态属性:

创建时---处于待定状态(padding)
成功时---处于完成状态(sucess)
失败时---处于失败状态(fail)

刚创建成功的promise,处于待定状态(padding),如果promise中函数调用了resolve(异步任务成功),
则由待定状态转为完成状态(sucess)。如果promise中的函数调用了reject(异步任务失败),则会由待定状态转为失败(fail)。一个promise对象的状态一但由待定转为成功或失败,则它的状态就确定了。

3, promise对象的.then方法,用于为promise对象添加任务成功时的回调函数。回调函数会在promise对象变为完成状态时执行,如果promise已经处于完成状态,则会立刻执行。

4,promise对象的.catch方法,为promise对象添加任务失败时的回调函数,回调函数会在promise变为失败状态时执行,如果promise已经是失败状态则会立刻执行。


promise封装
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Promise 的含义 Promise是异步编程的一种解决方案,比传统的解决方案- -回调函数和事件- - 更...
    海之深处爱之港湾阅读 3,532评论 0 2
  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 12,777评论 1 56
  • 1. 首先创建Promise实例,Promise实例生成以后,可以用then方法分别指定Resolved状态和Re...
    竹溪穆褕阅读 3,203评论 0 2
  • 前言 在Promise之前,js的异步编程都是采用回调函数和事件的方式。但是这种编程方式在处理复杂业务的情况下,很...
    卓三阳阅读 4,270评论 0 1
  • 在 MDN 中对 Promise 的定义是:Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及...
    淘淘笙悦阅读 2,844评论 0 2