Promise了解
2024-09-06 13:44:45
Promise是一个构造函数,excutor是他的执行函数,同时也是构造函数的参数.
new Promise(excutor)
excutor有两个参数(resolve,reject)
Promise的三种状态
- pending,Promise初始化时是该状态
- fulfilled,Promise成功时是该状态,调用resolve
- rejected,Promise失败时是该状态,调用reject
Promise状态只能有pending => fulfilled/rejected, 一旦修改就不能再改变
使用方法
- 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
- 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 状态的话,就会继续进行后面的处理。
最新文章
- 玩转ajax
- linuxmint 17安装qt5.3.1
- 基于Angular2的前端框架CoreUI开发使用说明
- 2017/1/8 C语言程序练习d
- css3 定义选择器
- C++重载运算符的规则
- 【百度地图API】北京周边7日游——图标按路线轨迹行动
- struts2的工作原理
- seajs加载jquery提示$ is not a function
- vue cli使用融云实现聊天
- 001.[python学习]写在前面的
- R语言使用RMySQL连接及读写Mysql数据库
- 安全之路 —— C/C++开3389端口(远程终端)
- SpringBoot集成篇(二) 异步调用Async
- HDU 4004 二分
- Zynq-7000 FreeRTOS(一)系统移植配置
- perl: warning: Setting locale failed.
- 学习新框架laravel4 第一天(- -! 新公司版本使用的4,所以还要重新学习)
- php redis和java混用问题
- 160804、oracle查询:取出每组中的第一条记录