ES6 Promise对象概念与用法分析


Posted in Javascript onApril 01, 2017

本文实例讲述了ES6 Promise对象概念与用法。分享给大家供大家参考,具体如下:

1.Promise概念

Promise 对象有三种状态:

① Fulfilled 可以理解为成功的状态
② Rejected 可以理解为失败的状态
③ Pending 既不是 Fulfilld 也不是 Rejected 的状态,可以理解为 Promise 对象实例创建时候的初始状态

2.三个重要方法

在 Promise 对象当中有三个重要方法————resolve, reject和then。

resolve 方法可以使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作,在这个例子当中就是 Hello World!字符串。

reject 方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。

function printHello (ready) {
 return new Promise(function (resolve, reject) {
 if (ready) {
  resolve("Hello");
 } else {
 reject("Good bye!");
}
});
}
function printWorld () {
alert("World");
}
function printExclamation () {
alert("!");
}
printHello(true)
.then(function(message){
alert(message);
})
.then(printWorld)
.then(printExclamation); //分别弹出 Hello World !三个弹窗

上述例子通过链式调用的方式,按顺序打印出了相应的内容。then 可以使用链式调用的写法原因在于,每一次执行该方法时总是会返回一个 Promise 对象。另外,在 then onFulfilled 的函数当中的返回值,可以作为后续操作的参数,因此上面的例子也可以写成:

function printHello (ready) {
 return new Promise(function (resolve, reject) {
 if (ready) {
  resolve("Hello");
 } else {
 reject("Good bye!");
}
});
}
printHello(true).then(function (message) {
 return message;
}).then(function (message) {
 return message + ' World';
}).then(function (message) {
 return message + '!';
}).then(function (message) {
alert(message);
}); //一个弹窗 Hello World !

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
用Javascript 获取页面元素的位置的代码
Sep 25 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
Nov 08 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
javascript中AJAX用法实例分析
Jan 30 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
AngularJS基础 ng-href 指令用法
Aug 01 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
深入浅析Vue中的Prop
Jun 10 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 Javascript
JavaScript中闭包的详解
Apr 01 #Javascript
基于JavaScript实现验证码功能
Apr 01 #Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 #Javascript
Angularjs使用指令做表单校验的方法
Mar 31 #Javascript
JS正则获取HTML元素的方法
Mar 31 #Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 #Javascript
ES6中Generator与异步操作实例分析
Mar 31 #Javascript
You might like
投票管理程序
2006/10/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
php数组遍历类与用法示例
2019/05/24 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
JS实现图片切换特效
2019/12/23 Javascript
浅析Python 中整型对象存储的位置
2016/05/16 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python中整数的缓存机制讲解
2019/02/16 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
企业演讲比赛主持词
2014/03/18 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
护士个人年度总结范文
2015/02/13 职场文书
努力学习保证书
2015/02/26 职场文书
校运会加油稿大全
2015/07/22 职场文书
python装饰器代码解析
2022/03/23 Python