promise是一个对象,里面保存着某个未来才会结束的事件,通常是一个异步事件。

promise对象的两个特点:

1.对象的状态不受外界影响:pending(进行中) fulfilled(已成功) rejected(已失败)
只有异步操作的结果可以决定当前状态,其他任何操作都无法改变这个状态

2.一旦状态改变发,就不会再变resolved(已定型),任何时候都可以得到这个结果。
状态改变只有两种可能: pending ==> fulfilled
pending ==> rejected
promise缺点:
1.一旦创建,无法中途取消
2.promise内部的报错,不会反映到外部
3.当处于pending状态时,不知道具体进展到哪一个阶段(刚刚开始还是即将完成)

promise是一个构造函数,用来生成promise实例。

promise构造函数接收函数作为参数,函数参数又接收两个函数作为参数

promise实例后,可以用then方法指定resolved和rejected两个回调函数

Promise.prototype.then() then方法是挂在Promise实例的原型链上,then返回的是一个新promise实例

promise对象改变状态,若为resolved则调用then中的第一个函数,若为rejected则调用第二个函数

const promise = new Promise(function (resolve, reject) {
......
if(){
resolve(value)
}else {
reject(error)
}

})

promise.then(function(value){ }, function(error){ })

Promise.prototype.catch() 可以捕获到promise内部的报错并向外部抛出异常,一般不用then()的第二个回掉函数,推荐使用catch()

Promise.prototype.finally()
不管状态如何,最后都会执行的操作;
finally的回调函数不接受任何参数

Promise.all()将多个 Promise 实例,包装成一个新的 Promise 实例。
每个promise实例都为fulfilled时,新的promise状态才为fulfilled;
只要有一个promise实例为rejected,新的promise状态就为rejected。

Promise.race()将多个 Promise 实例,包装成一个新的 Promise 实例。

Promise.resolve()将原有的对象返回一个新的 Promise 对象,状态为resolved

Promise.reject()将原有的对象返回为一个新的 Promise 实例,该实例的状态为rejected

Promise.try() 不管函数是同步的还是异步的,都用promise来处理函数,函数返回值是一个promise对象。

最新文章

  1. valueForKeyPath常用用法
  2. mybatis 添加事物后 无法获取自增主键的问题
  3. Oracle常用操作-----(一)
  4. 【IOS笔记】Event Delivery: The Responder Chain
  5. lnmp下配置虚拟主机
  6. opencv行人检测里遇到的setSVMDetector()问题
  7. 【USACO 2.4.4】回家
  8. 高级new创建
  9. 创建成功的Python项目
  10. Hadoop1.0.4伪分布式安装
  11. MyBatis 关系映射XML配置
  12. file常用功能
  13. RPC框架-RMI、RPC和CORBA的区别
  14. 使用 PowerShell 将数据磁盘附加到 Windows VM
  15. mysql where 条件中的字段有NULL值时的sql语句写法
  16. python中map()函数
  17. 简单安装与使用虚拟环境virtualenv
  18. appium启动sdk的android模拟器
  19. MongoDB查询用法大全
  20. python2 和 python3兼容写法

热门文章

  1. centos安装完php-fpm、nginx后访问网站出现权限问题
  2. 【POJ】1182 食物链
  3. ES6 学习 -- 解构赋值
  4. 记录装CDH新增加一些遇到问题的解决
  5. 搜索框下面显示提示数据(数据是ajax读取)
  6. 【FHQ-Treap】P4146 序列终结者
  7. Matplotlib---柱状图、直方图(高斯分布)
  8. ES5数组扩展
  9. node---处理post请求
  10. 十一. for of