ES6 Promise对象概念与用法分析

 更新时间:2017年04月01日 08:52:07   作者:柒青衿  
这篇文章主要介绍了ES6 Promise对象概念与用法,简单分析了Promise对象的基本状态与三种重要方法,并结合实例形式给出相关使用技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 微信小程序商城项目之淘宝分类入口(2)

    微信小程序商城项目之淘宝分类入口(2)

    这篇文章主要为大家详细介绍了微信小程序实战商城系列之淘宝分类入口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 如何理解JS函数防抖和函数节流

    如何理解JS函数防抖和函数节流

    函数防抖和函数节流都是对函数进行特殊的设置,减少该函数在某一时间段内频繁触发带来的副作用。二者只是采用的设置方式和原理不一样,其最终的目的是一样的。
    2021-05-05
  • javascript实现信息增删改查的方法

    javascript实现信息增删改查的方法

    这篇文章主要介绍了javascript实现信息增删改查的方法,实例分析了javascript操作页面元素实现针对页面信息的增删改查功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 浅析JavaScript中命名空间namespace模式

    浅析JavaScript中命名空间namespace模式

    namespace即“命名空间”,也称“名称空间” 、”名字空间”。接下来通过本文给大家介绍JavaScript中命名空间namespace模式的相关知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-06-06
  • 详解js中常用4个基础算法

    详解js中常用4个基础算法

    本文主要介绍了JS中常用的四个基础算法,主要介绍了冒泡排序,选择排序,插入排序和快速排序这四种算法,需要的朋友可以参考下
    2023-05-05
  • 浅谈bootstrap源码分析之scrollspy(滚动侦听)

    浅谈bootstrap源码分析之scrollspy(滚动侦听)

    下面小编就为大家带来一篇浅谈bootstrap源码分析之scrollspy(滚动侦听)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JavaScript柯里化函数式编程面试详解

    JavaScript柯里化函数式编程面试详解

    这篇文章主要介绍了JavaScript柯里化函数式编程,JS柯里化是前端面试中最常见的问题之一,它可以让你的代码更简洁,工作更高效,感兴趣想要详细了解可以参考下文
    2023-05-05
  • JS控件的生命周期介绍

    JS控件的生命周期介绍

    JS控件的生命周期跟其他平台UI的生命周期类似,但是又有自己的特点,我们只有将控件的生命周期划分清晰,所有的控件编写、mixins的编写和plugin的编写才能遵循控件的生命周期做统一的管理
    2012-10-10
  • ES6 javascript中class静态方法、属性与实例属性用法示例

    ES6 javascript中class静态方法、属性与实例属性用法示例

    这篇文章主要介绍了ES6 javascript中class静态方法、属性与实例属性用法,结合实例形式分析了ES6中类的静态方法、静态属性概念、功能、使用方法与相关注意事项,需要的朋友可以参考下
    2017-10-10
  • javascript 浏览器检测代码精简版

    javascript 浏览器检测代码精简版

    javascript检测浏览器精简版,需要的朋友可以参考下。
    2010-03-03

最新评论