注意

  • 时刻注意return;
  • 使用Promise.promisify简化对test(val, function(err, result){})的处理;
  • 尽量避免使用 deferred object;

.spread

  • 用于简化处理返回值是数组的情况;
  • es6取代其处理返回数组的时候注意添加.all();

.catch()

  • 允许传入错误类型(error constructor)来区别错误判断,包括:

    • TypeError,
    • ReferenceError,
    • EvalError,
    • SyntaxError,
    • RangeError,
    • NetworkError,
    • TimeoutError
  • 也可以自己设置特别的错误类型,并且可以详细错误类型的信息;
  • 可以传入一个返回布尔值的函数进行过滤;
  • 传入一个对象简化判断;

.error

  • 如果把错误分成Operational errorsprogrammer errors,则可以用error方法来处理前者;这些错误包括:

    * failed to connect to server

    * failed to resolve hostname

    * invalid user input

    * request timeout

    * server returned a 500 response

    * socket hang-up

    * system is out of memory

.finally

  • fulfilled状态后触发;并与之后的.then方法同时被触发;
  • fulfilled状态触发后不会返回值到这个方法;同时其返回的方法也不会传递到下一个.then方法;

Promise.try

  • 传入函数,没有错误则其返回值为fulfilled状态,有错误则返回rejected状态的错误;

Promise.method

  • 处理机制与Promise.try类似,都传入函数;但其返回的是一个会返回promise对象的方法;

Promise.resolve

  • 将传入的数据转化为promise对象返回,除了原本是promise对象且是rejected状态的都会变成fulfilled状态;

Promise.reject

  • 将传入的数据转化为promise对象返回,状态都为rejected;

Promise.bind/.bind

  • 传入一个值,给后续的链式操作中绑定一个this为这个值;如果传入this,则绑定的是.bind()方法之前返回的值;

Collections

Promise.all

  • 传入数组,当全部值为fulfilled状态时以数组形式传递返回值;
  • 当有一个值状态为rejected时将改值传递到错误处理;其他值不传递;

Promise.join

  • 参数为一般参数加处理函数;处理函数相当于一个.then方法;
Promise.join(val1, val2, val3, function (val1, val2, val3) {}).then...
  • 处理机制与Promise.all类似;

Promise.props

  • 处理机制与Promise.all类似,接受对象处理;

Promise.any

  • 接受数组,会返回第一个达到fulfilled状态的值;如果是空数组或都为rejected状态,则全部返回错误处理;
  • 注意实际的运行时间是包括全部值的判断的;

Promise.some

  • 第一参数为接受数组,第二参数为判断的个数; 设置个数必须,且不能大于数字个数,可以为0;
  • 处理机制与Promise.all类似;返回最先到达设置个数的fulfilled状态的值;
  • 如果参数中fulfilled状态的值达不到设定个数,返回rejected状态的值到错误处理函数;

Promise.map

  • 第一参数为接受数组,第二参数为判断函数;

Promise.reduce, Promise.filter, Promise.each

  • 同上

.map

  • 第一参数为判断函数;第二参数为设置并发数: {concurrency: Infinity};设置并行个数能加快处理但不能保证返回顺序;
  • 注意传递过来的必须是数组;

.reduce, .filter, .each

  • 同上

Promise.mapSeries/.mapSeries

  • Promise.map类似;区别在于没有并发设置参数,如果其中一个为rejected状态,则之后的值便不再处理;

Promise.race

  • 接受数组,返回第一个达到fulfilled状态的值;

Resource management

Promise.using

  • 接受多个参数,最后一个为处理前面参数的函数,在前面参数都为fulfilled状态时才会处理;

Promisification

Promise.promisify

Promise.promisifyAll

最新文章

  1. TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计
  2. 【转】WPF: 自动设置Owner的ShowDialog 适用于MVVM
  3. hdu 5894 hannnnah_j’s Biological Test 组合数学
  4. mysql通过sql语句如何批量去掉某一个表中某一个字段的下面的相同部分字符串
  5. php实现文件上传下载功能小结
  6. HTML超链接
  7. asp.net缓存(转)
  8. cocos2d-x于android在call to OpenGL ES API with no current context
  9. USACO 2.4 Cow Tours
  10. Mac 下格式化U盘
  11. php调用js变量
  12. Oracle 12C 新特性之move (非分区表)table online
  13. Springboot与Thymeleaf模板引擎整合基础教程(附源码)
  14. 安装Compass时不能访问服务器的问题
  15. Iconfont 在HTML中的使用
  16. 解析中国天气网页面获取七日天气 (Java, Python)
  17. 模拟实现库函数的atoi、atof和itoa
  18. 2017 5 31 php面向过程 面向对象1
  19. FileProvider 添加二级目录
  20. fasterxml.jackson 将对象转换为json报错处理

热门文章

  1. Spring IoC容器的初始化过程
  2. JavaScript把客户端时间转换为北京时间
  3. SaaS模式的软件
  4. 数据存储_ SQLite (1)
  5. [Data Structure] 数据结构中各种树
  6. svn 版本转为git
  7. PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
  8. java笔记--关于线程同步(7种同步方式)
  9. extractor
  10. SpringMVC Controller介绍