ES6基础之详解Promise基本用法

来源:互联网 发布:大众软件 众筹 编辑:程序博客网 时间:2024/06/01 07:51

一、Promise是一个构造函数,用来生成promise实例;

var promise=new Promise();

二、构造函数接收一个参数,这个参数是一个函数,当创建实例的时候,参数里的函数会立即执行;

var promise=new Promise( function(){ console.log('这行代码会立即执行!')  } )

三、参数里面的函数又接收两个参数,两个参数均为函数,一个resolve,一个reject;

var promise=new Promise( function( resolve,reject   ){ console.log('这行代码会立即执行!')  } )

四、异步操作成功时调用resolve,resolve函数将promise对象的状态从pending变为resolve,并将操作的结果作为参数传出去;

var promise=new Promise( function(){     wx.request({        url:'xxxxx',        method:'get',        success:function(res){           resolve(res);           //发请求成功了,则调用resolve函数        },        fail:function(err){           reject(err)        //发请求失败,则调用reject函数        }    })})

五、异步操作失败时调用reject,reject函数将promise对象的状态从pending变为rejected,并将操作报出的错误,作为参数传递出去;

//同上

六、实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数;

//接上一步,加入请求成功,这时候,调用resolve函数,将promise的状态转为resolved,//在这时候实例promise可以利用then方法,指定,当状态变成resolved时,做什么//例如,上一步,get方式请求成功之后,将获取的数据解析一下,则可以这样子写promise.then( fuction(value){   //这时候是状态为resolved的时候  value就是通过resolve函数传过来的参数   //解析数据   ......},function(error){   //这时候是状态为rejected的时候   也就是说请求失败了,调用reject函数,promise状态变成了rejected   //提醒用户  请求失败   console.log("请求数据失败")} )

七、then方法接收两个函数参数,分别作为resolved和rejected的回调函数,第二个参数可选;

//同上

八、then方法

//promise实例具有then方法,说明then方法是定义在原型对象上,//作用是当实例状态发生改变时,为其添加回调函数

九、catch方法

//catch方法也定义在原型上,在then方法后调用,发生错误时调用//注意,本质是.then(null,rejection)的别名

十、没有十,我只是为了凑整

本文参考阮一峰《ES6入门》,个人是看了好几遍才完全看懂,写出来希望对你有所帮助。