promise && than
2024-08-26 01:15:49
Promise 构造函数接受一个函数作为参数,该函数的2个参数分别是 resolve 和 reject。他们是2个函数,有 JavaScript 引擎提供,不用自己部署。
var promise = new Promise ( function ( resolve, reject) {
if ( /* 异步操作成功 */ ) {
resolve (value)
} else {
reject (error)
}
})
如果调用 resolve 函数和 reject 函数时带有参数,那么这些参数会被传递给回调函数。
Promise 实例生成以后,可以用 then 方法分别指定 Resolved 状态和 Rejected 状态的回调函数(then 方法的作用是为 Promise 实例添加状态改变时的回调函数)。
promise.then( function (value) {
// success
}, function (value) {
// failure
})
Promise 对象的错误具有“冒泡”性质,会一直向后传递,直到被捕获为止。也就是说,错误总是会被下一个 catch 语句捕获。注意:因此无法知道错误是哪个Promise产生的,除非设置了不一样的错误提示。
一般,不要在 then 方法中定义 Rejected 状态的回调函数(即 then 的第二个参数),而应该总是使用 catch。
如果没有使用 catch 方法指定错误处理的回调函数,Promise 对象抛出的错误不会传递到外层代码,即不会有任何反应。
catch 方法返回的还是一个 Promise 对象,因此还可以接着调用 then 方法。
如果没有报错,则会跳过 catch 方法,继续执行后面的 then 方法(如果后面还有 then 方法的话)。
getJson ('/post/1.json').then ( function (post) {
return getJson(post.commentURL)
}).then ( function (comments) {
// some code
}).catch ( function (error) {
// 处理前面3个 Promise 产生的错误
})
最新文章
- 解决apache 443端口被占用
- P53 T3
- HNU 12869 Sequence(循环节)
- SQL 不同的数据类型
- [转] 弱校ACM奋斗史
- Microsoft Dynamics CRM4.0编程---说明
- vc++上的MFC的对象序列化和反序列化
- Swift - 使用导航条和导航条控制器来进行页面切换
- For each...in / For...in / For...of 的解释与例子
- 页面显示LCD液晶字体或者其他特殊字体
- 20165235 2017-2018-2《Java程序设计》课程总结
- linux环境,通过rpm删除mysql包,报错:error reading information on service mysqld: Invalid argument
- Spring boot 入门篇
- [20170622]传输表空间与dblink.txt
- 阿里云 mysql 远程登录权限
- 【读书笔记】思维导图 Talk Like Ted
- 基础数据类型-list
- kafka-zk-安装测试初体验
- Go搭建一个Web服务器
- UVA - 434 Matty&;#39;s Blocks
热门文章
- leetcode_951. Flip Equivalent Binary Trees_二叉树遍历
- Android(java)学习笔记193:ContentProvider使用之获得系统联系人信息01
- 关闭 将jar或者aar发布到到mvn 中(用github作为仓库), 通过gradle dependency 方式集成
- oracle分析函数之ratio_to_report
- centOS取消锁屏
- MySQL-----唯一索引
- Spring Boot 2 (三):Spring Boot 开源软件都有哪些?
- Tomcat处理HTTP请求原理
- Windows和Linux启动虚拟环境
- LaTex/Overleaf使用笔记