ES6基础之详解Promise基本用法
2017-09-29 11:20
666 查看
一、Promise是一个构造函数,用来生成promise实例;
二、构造函数接收一个参数,这个参数是一个函数,当创建实例的时候,参数里的函数会立即执行;
三、参数里面的函数又接收两个参数,两个参数均为函数,一个resolve,一个reject;
四、异步操作成功时调用resolve,resolve函数将promise对象的状态从pending变为resolve,并将操作的结果作为参数传出去;
五、异步操作失败时调用reject,reject函数将promise对象的状态从pending变为rejected,并将操作报出的错误,作为参数传递出去;
六、实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数;
七、then方法接收两个函数参数,分别作为resolved和rejected的回调函数,第二个参数可选;
八、then方法
九、catch方法
十、没有十,我只是为了凑整
本文参考阮一峰《ES6入门》,个人是看了好几遍才完全看懂,写出来希望对你有所帮助。
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入门》,个人是看了好几遍才完全看懂,写出来希望对你有所帮助。
相关文章推荐
- [js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
- [javascript高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
- ES6 类(Class)基本用法和静态属性+方法详解
- ES6 类(Class)基本用法和静态属性方法详解
- ES6关于Promise的用法详解
- [置顶] Android开发之数据存储——SharedPreferences基础知识详解,饿补学会基本知识,开发者必会它的用法。
- es6 Promise 的基本用法
- PHP信号量基本用法实例详解
- promise的基本用法
- [Android基础]Intent用法的二三事(上)——Componet、Action、Category的属性详解
- Android Volley详解(一) 基本用法
- Splinter基本用法+零基础的双鸭山抢课脚本
- 在内部存储中写文件详解(组件CheckBox的基本用法)
- Python基础之函数用法实例详解
- ES6 Promise 用法讲解
- Promise对象的含义和基本用法
- ES6中Symbol类型用法实例详解
- nodejs入门级基础(数据类型,最基本的语法详解)
- 自定义View基础之——canvas,paint的基本用法
- PL/SQL DEVELOPER 基本用法详解-PLSQL