ES6的Promise -- 逻辑执行的顺序
基本认识
Promise的核心价值是创建一个异步执行的过程,并给你善后的机会。
Promise对象一但创建就会立即执行,执行过程是异步的,不会对后续的逻辑造成阻塞。
直接声明,立即执行
let promise = new Promise ( (resolve, reject) => {//执行耗时的逻辑。。。if ( success ) {resolve(a) // pending ——> resolved 参数将传递给对应的回调方法} else {reject(err) // pending ——> rejectd}} )//后续代码会继续执行,而不是等待Promise内部逻辑执行完毕。//...
放到函数里,需要时执行
function promise () {return new Promise ( function (resolve, reject) {//执行耗时的逻辑。。。if ( success ) {resolve(a)} else {reject(err)}} )}
Promise内逻辑执行完毕后,调用resolve还是reject,完全要看编程者的意图。调用resolve就会触发Promise的then,调用reject就会触发Promise的catch。
这就是设计的价值之处,执行完毕一个耗时操作后,给你一个条件回调的机会用于执行后续逻辑。
promise.then(() => { console.log('this is success callback') }).catch((err) => { console.log(err) })
更多
then() 和 catch() 都会返回一个新的Promise对象,可以链式调用。
promise.then(() => { console.log('this is success callback') }).catch((err) => { console.log(err) }).then(...).catch(...)
转载于:https://blog.51cto.com/livestreaming/2299777
ES6的Promise -- 逻辑执行的顺序相关推荐
- Promise.all执行顺序
Promise.all执行顺序 理解 栗子 理解 Promise.all等待所有Promise执行完毕之后,按照放在all中的先后顺序将resolve()返回的数据放在Promise.all的reso ...
- 8张图让你一步步看清 async/await 和 promise 的执行顺序
2019独角兽企业重金招聘Python工程师标准>>> **摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3 ...
- 【vue】使用Promise方法保证按顺序执行
[vue]使用Promise方法保证按顺序执行 使用Promise方法可以叠加.then方法,来保证执行顺序. queryTasksNum(){// TODO: 如果和queryImg都放在mount ...
- select语句的逻辑执行顺序,你知道吗?
回顾一下上一篇博客说到的问题: mysql -uroot -ptest 我们不能赤裸裸的将账户和密码就这样写在你的脚本里,这并不是一个好做法.所有能够访问你脚本的人都会知道数据库的用户账户和密码.要解 ...
- SQL查询语句逻辑执行顺序
1.查询语句的逻辑执行顺序 执行1:from 执行2:on 执行3:join 执行4:where 执行5:group by 执行6:having 执行7:select 执行8:distinct 执行9 ...
- Mysql各关键字的逻辑执行顺序
Mysql各关键字的逻辑执行顺序 下面的执行顺序只是一种逻辑顺序,由于Mysql优化器的作用,实际情况可能略有不同.使用explain语句可以分析sql语句的执行顺序,但也不保证准确性. (8) SE ...
- SELECT语句逻辑执行顺序,你知道吗?
引言 这不是一个什么多深的技术问题,多么牛叉的编程能力.这跟一个人的开发能力也没有非常必然的直接关系,但是知道这些会对你的SQL编写,排忧及优化上会有很大的帮助.它不是一个复杂的知识点,但是一个非常基 ...
- SqlServer中Sql语句的逻辑执行顺序
准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...
- HiveQL逻辑执行顺序
FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY Hive总是按照从左到右的顺序执行的,如a.b.c三个表关联 select ...
最新文章
- 最小环算法求解(Dijkstra算法+Floyd算法)
- 19.Oracle10g服务器管理恢复--RMAN表空间恢复(练习33)
- html页面缓存纪txt,cdn缓存的html静态页未更新小记
- mysql的左连接应用
- 关于 SAP UI5 系统测试工具 UIVeri5 的 Chromedriver 版本问题
- 设计模式C++实现(7)——装饰模式
- arch linux 树莓派,树莓派上安装配置Archlinux
- .NET (C#)ASP.NET 应用程序与页面生命周期
- C#中级-Windows Service程序安装注意事项
- word for mac 输入拼音时出现方框
- dell主板恢复出厂设置_DELL如何进入BIOS及恢复BIOS出厂设置
- 巴比特 | 元宇宙每日必读:红杉中国“雇”了一位虚拟员工,自称每秒可看百份商业计划书,期待时薪为0.68元...
- Windows系统中禁止某应用程序联网操作方法
- 07年个人站长闯关,三条道路通罗马
- 基于arduino的幻尔总线机器人
- Java:15位或18位居民身份证号码通用校验(正则表达式、日期格式、末尾校验码)
- 爬虫xx网站论坛的帖子源码分享
- openssl加密与模拟CA签证和颁发
- 计算机表格中如何计算数据透视表,Excel表格中在数据透视表中添加计算字段的方法...
- gmt转换北京时间 java_java GMT 日期转换 | 学步园