- 内容简介
- 译者序
- 前言
- 第 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 中的 API 会把所有包含 then 方法的对象看做“类 Promise”(术语上我们称之为 thenable)对象。那么,当你使用的类库返回 Q Promise 时,一点也不用担心,它会同新的 JavaScript Promise 完美融合。
但需要注意的是,前文介绍了 jQuery 中 Deferred 对象的问题,这让人非常扫兴。不过幸运的是,我们可以将它们转换成标准的 Promise,而且最好当它们一出现的时候就进行转换:
var jsPromise = Promise.resolve($.ajax('/whatever.json'));
在这里 jQuery 的$.ajax 返回了一个 Deferred 对象。因为它具有“then”方法,所以我们可以使用 Promise.resolve 方法将它转换成 JavaScript Promise。但是,有些时候 Deferred 对象会给它的回调函数传递多个参数,如:
var jqDeferred = $.ajax('/whatever.json'); jqDeferred.then(function(response, statusText, xhrObj) { // ... }, function(xhrObj, textStatus, err) { // ... }); JavaScript Promise 只会保留第一个参数,其他参数均被忽略: jsPromise.then(function(response) { // ... }, function(xhrObj) { // ... });
通常情况下这已经能满足需求了,或者至少能让你实现自己的想法。同时,另一个需要关注的问题是,jQuery 并不会给请求失败的回调函数传递 Error 对象。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论