- 内容简介
- 译者序
- 前言
- 第 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 入门
Promise API 参考
除非特别注明,以下方法均可在 Chrome、Opera 和 Firefox(nightly 版本)中运行。使用 Polyfill 则可以在所有浏览器中实现相同的接口。
静态方法
Promise.resolve(promise)
返回一个 Promsie(当且仅当 promise.constructor==Promise)。
Promise.resolve(thenable)
根据 thenable 对象创建一个新的 Promise。thenable(类 Promise)对象是一个具有“then”方法的对象。
Promise.resolve(obj)
创建一个以 obj 为 resolve 结果的 Promise。
Promise.reject(obj)
创建一个以 obj 为 reject 对象的 Promise。为了一致性和调试便利(如堆栈跟踪), obj 最好是 Error 对象的实例。
Promise.all(array)
创建一个 Promise 对象,当且仅当数组中的所有 Promise 都返回 resolve 的结果之后才 resolve,若数组中有一个 Promise 返回 reject 的结果,则抛出 reject 结果。每个数组元素都会首先经过 Promise.resolve,所以数组可以包含类 Promise 对象或者其他对象。resolve 结果是一个数组,包含传入数组中每个 Promise 的 resolve 结果(且保持顺序); reject 结果是传入数组中第一个遇到的 reject 结果。
Promise.race(array)
创建一个 Promise,当数组中只要有 resolve 时即将其结果作为 resolve 结束,或者只要有 reject 时即将其结果作为 reject 结束。
备注:我不确定这个接口是否有用,但是我更喜欢另一个与 Promise.all 效果相反的方法,即当且仅当数组元素全部给出 reject 的时候才给出 reject 结果。
构造器
new Promise(function(resolve, reject) {}); resolve(thenable)
你的 Promise 根据 thenable 对象的结果来返回 resolve/reject 的结果。
resolve(obj)
你的 Promise 将以 obj 作为 resolve 结果来完成。
reject(obj)
你的 Promise 将以 obj 作为 reject 结果来完成。为了一致性和调试方便(如堆栈跟踪), obj 最好是 Error 对象的实例。任何在构造器的回调函数中发生的错误都会被立即传递给 reject()。
实例方法
promise.then(onFulfilled, onRejected)
当 Promise 以 resolve 结束时会调用 onFulfilled 方法。当 Promise 以 reject 结束时会调用 onRe-jected。这两个参数都是可选的,当任意一个未定义时,对它的调用会跳转到 then 链的下一个 onFulfilled/onRejected 上。这两个回调函数均只接受一个参数,resolve 结果或者 reject 原因。当 Promise.resolve 结束之后,then 会返回一个新的 Promise,这个 Promise 相当于从 onFulfilled/onRejected 中返回的值。如果回调中抛出错误,返回的 Promise 也会以此错误作为 reject 结果结束。
promise.catch(onRejected)
promise.then(undefined, onRejected) 的语法糖。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论