ES6 Promise对象概念与用法分析

发布时间 - 2026-01-11 00:28:24    点击率:

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


# ES6  # Promise对象  # 如何利用ES6进行Promise封装总结  # 让你彻底掌握es6 Promise的八段代码  # 深入解析ES6中的promise  # ES6关于Promise的用法详解  # ES6中Promise的使用方法实例总结  # ES6中promise详解及用法实例  # 链式  # 在这个  # 出了  # 则是  # 中有  # 给大家  # 弹出  # 可以使用  # 既不  # 所述  # 程序设计  # 有三种  # 时将  # 返回值  # 信息传递  # 改变成  # 讲述了  # Pending  # Rejected  # br 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  奇安信“盘古石”团队突破 iOS 26.1 提权  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel怎么调用外部API_Laravel Http Client客户端使用  Linux网络带宽限制_tc配置实践解析【教程】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  焦点电影公司作品,电影焦点结局是什么?  如何快速辨别茅台真假?关键步骤解析  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  米侠浏览器网页背景异常怎么办 米侠显示修复  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  智能起名网站制作软件有哪些,制作logo的软件?  如何挑选高效建站主机与优质域名?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在云服务器上快速搭建个人网站?  Python函数文档自动校验_规范解析【教程】  EditPlus中的正则表达式 实战(1)  如何在阿里云完成域名注册与建站?  Laravel如何优化应用性能?(缓存和优化命令)  简单实现Android验证码  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  无锡营销型网站制作公司,无锡网选车牌流程?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Java垃圾回收器的方法和原理总结  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何用已有域名快速搭建网站?  ,网页ppt怎么弄成自己的ppt?  如何确保西部建站助手FTP传输的安全性?  高性价比服务器租赁——企业级配置与24小时运维服务  如何批量查询域名的建站时间记录?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何在Tomcat中配置并部署网站项目?  如何挑选最适合建站的高性能VPS主机?  如何在景安云服务器上绑定域名并配置虚拟主机?  如何快速查询网站的真实建站时间?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  利用vue写todolist单页应用  利用JavaScript实现拖拽改变元素大小  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何与Pusher实现实时通信?(WebSocket示例)