ES6

ES6-Promise对象

2019-05-09  本文已影响0人  叶叶叶xxx
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封装
上一篇 下一篇

猜你喜欢

热点阅读