Promise是一个构造函数,excutor是他的执行函数,同时也是构造函数的参数.

new Promise(excutor)

excutor有两个参数(resolve,reject)

Promise的三种状态

  • pending,Promise初始化时是该状态
  • fulfilled,Promise成功时是该状态,调用resolve
  • rejected,Promise失败时是该状态,调用reject

    Promise状态只能有pending => fulfilled/rejected, 一旦修改就不能再改变

使用方法

  1. promise.then(onFulfilled, onRejected)

    注意: 这样使用onRejected不会捕获到onFulfilled的异常.

    例如:
let promise = new Promise((resolve,reject)=>{
resolve(1)
})
promise.then((val)=>{
val.splice(0,1)
},(e)=>{
console.log("11");
})
// 错误信息
VM594:2 Uncaught (in promise) TypeError: val.splice is not a function
at <anonymous>:2:9
  1. promise.then(onFulfilled).catch(onRejected)

    注意: 这样可以捕获onFulfilled中的异常

    例如:
let promise = new Promise((resolve,reject)=>{
resolve(1)
})
promise.then((val)=>{
val.splice(0,1)
})
.catch((e)=>{
console.log("11");
})
// 输出 11

Promise.resolve

Promise.reject

Promise.all,全部为resolve才会调用

Promise.race

Promise.race,只要有一个promise对象进入 FulFilled 或者 Rejected 状态的话,就会继续进行后面的处理。

最新文章

  1. 玩转ajax
  2. linuxmint 17安装qt5.3.1
  3. 基于Angular2的前端框架CoreUI开发使用说明
  4. 2017/1/8 C语言程序练习d
  5. css3 定义选择器
  6. C++重载运算符的规则
  7. 【百度地图API】北京周边7日游——图标按路线轨迹行动
  8. struts2的工作原理
  9. seajs加载jquery提示$ is not a function
  10. vue cli使用融云实现聊天
  11. 001.[python学习]写在前面的
  12. R语言使用RMySQL连接及读写Mysql数据库
  13. 安全之路 —— C/C++开3389端口(远程终端)
  14. SpringBoot集成篇(二) 异步调用Async
  15. HDU 4004 二分
  16. Zynq-7000 FreeRTOS(一)系统移植配置
  17. perl: warning: Setting locale failed.
  18. 学习新框架laravel4 第一天(- -! 新公司版本使用的4,所以还要重新学习)
  19. php redis和java混用问题
  20. 160804、oracle查询:取出每组中的第一条记录

热门文章

  1. Linux系统常用的命令
  2. K8S原来如此简单(八)ServiceAccount+RBAC
  3. 羽夏看Win系统内核——消息机制篇
  4. web.xml---配置文件概要
  5. 什么叫线程安全?servlet 是线程安全吗?
  6. vue中ajax请求发送
  7. centos下安装配置maven
  8. 在 VC 下清空键盘缓冲区的方法
  9. zTree -- jQuery 树插件 使用方法与例子
  10. 让IE兼容background-size的方法_background-size ie下使用