- 内容简介
- 译者序
- 前言
- 第 1 章 安装配置新项目
- 第 2 章 Flexbox 布局介绍
- 第 3 章 用 React Native 开发一个应用
- 第 4 章 在 React Native 中使用导航
- 第 5 章 动画和滑动菜单
- 第 6 章 用 React Native 绘制 Canvas
- 第 7 章 使用 React Native 播放音频
- 第 8 章 你的第一个自定义视图
- 第 9 章 Flux 介绍
- 第 10 章 处理复杂的应用程序状态
- 第 11 章 使用 Node 来实现服务端 API
- 第 12 章 在 React Native 中使用文件上传
- 第 13 章 理解 JavaScript Promise
- 第 14 章 fetch 简介
- 第 15 章 在 iOS 中使用 SQLite
- 第 16 章 集成 Google Admob
- 第 17 章 React Native 组件国际化
- 附录 A React.js 快速介绍
- 附录 B Objective-C Primer
- 附录 C webpack 入门
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
JavaScript 异常和 Promise
Promise 的 reject 回调大多数是在 Promise.reject() 时触发的,但是当构造器回调函数中发生错误时,也会隐性地被触发:
var jsonPromise = new Promise(function(resolve, reject) {
// 当
JSON.parse 接收到非法
JSON 格式数据时,会抛出错误
// 这会隐性地触发否定回调
resolve(JSON.parse("This ain't JSON"));
});
jsonPromise.then(function(data) {
// 这里永远不会被执行
console.log("It worked! ", data);
}).catch(function(err) {
// 这里是真正执行的代码
console.log("It failed! ", err);
});
这就说明,你可以把所有跟 Promise 相关的逻辑都写到构造器的回调函数中,这样任何错误都会被自动捕获并触发 Promise 的否定回调。
“then”方法的回调函数中抛出错误时,同上面的情形类似:
get('/').then(JSON.parse).then(function() {
// 这里不会被执行,因为
’/' 是一个
HTML 页面,不是
JSON 格式
// 所以
JSON.parse 在这里会抛出错误
console.log("It worked! ", data);
}).catch(function(err) {
// 这里是真正执行的代码
console.log("It failed! ", err);
});
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论