博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JavaScript]Promise
阅读量:4360 次
发布时间:2019-06-07

本文共 902 字,大约阅读时间需要 3 分钟。

概述

Promise提供一种执行异步回调动作时候,以链的形式操作回调结果的方法。

用法

new Promise(executor);

误区

1.executor不是消息队列,它会马上执行;

2.executor必须至少调用resolve, reject两者之一,否则Promise的then/catch无法触发;

3.catch()相当于then(null, rejectHandler);

new Promise((resolve, reject) => {    reject();}).catch(() => {    console.log('Do that');})/*.then(null, () => {    console.log('Do that');})*///以上语法是对等的

4.then/catch后面可以无限接then/catch,但是至于执行then的resolveHandler, rejectHandler,还是是否执行catch的rejectHandler,有两种可能性:

如果一个Promise接下来是then,那么看看这个Promise调用的是resolve()还是reject(),如果then/catch存在相对应的handler,则调用,否则不执行直接返回Promise。而catch则可以把它当成then(null, rejectHandler)去理解;

then/catch返回的Promise默认是resolve状态(注意,这里说的是then/catch返回的Promise,并不是初始化的第一个Promise),所以不管上一个then/catch调用的是resolveHandler还是rejectHandler,下一个调用的必然是resolveHandler,除非在上一个then/catch显式地调用了reject();

5.所有调用reject()的Promise都需要调用then/catch捕捉这个reject,否则控制台会报错;

转载于:https://www.cnblogs.com/yiyide266/p/11084063.html

你可能感兴趣的文章
收款 借贷
查看>>
Gson关于抽象类的序列化与反序列化
查看>>
Java面向对象之类和对象
查看>>
Oracle数据库提权(dba权限执行系统命令)
查看>>
Hydra爆破神器使用
查看>>
java.util.zip.ZipException: duplicate entry(重复依赖多版本的类库)
查看>>
Run MVC in older version of IIS
查看>>
Ajax 监听
查看>>
隐藏"站长统计"图标
查看>>
Oracle select 中case 的使用以及使用decode替换case
查看>>
创建一个dynamics 365 CRM online plugin (十二) - Asynchronous Plugins
查看>>
Eclipse 常用快捷键 (动画讲解)
查看>>
233 Matrix(矩阵快速幂+思维)
查看>>
字符串分割 php标签,php – Puzzle:正确分割HTML字符串
查看>>
天气位置代码php,php如何获取指定地区天气
查看>>
java 中加 try catch,在java语言中trycatch的catch中能否再加tryc, java中 trycatch语句
查看>>
java se内存方法区内容,JVM内存划分及管理,JVM内存划分管理
查看>>
评论楼层数 php,dedecms怎么实现楼层数
查看>>
php非阻塞 curl,CURL非阻塞调用类【PHP】 | 学步园
查看>>
php crontab扩展,croon
查看>>