初识Promise (一)promise基础
theme: mk-cute
小知识,大挑战!本文正在参与“”创作活动。
promise 基础知识
promise 理解
-
promise 是javascript中异步编程的新的解决方案 promise 是一个构造函数 promise 对象用来封装一个异步操作并获取结果
promise 状态
-
pending 等待状态 resolved 成功状态 rejected 失败状态 promise 状态转换 mermaid graph TD pending --> resolved pending --> rejected 状态转换只有这两种 一个promise对象只能改变一次状态 成功后结果数据为value 失败后结果为reason
promise 基本流程
-
new Promise() 新建一个promise 成功执行resolved() 失败执行rejected() resolved和rejected回调都可以使用.then catch只能用于rejected回调时 promise返回的是一个promise对象
promise的基本使用
``js // 1. 新建一个promise // 2. promise 接收一个回调函数 这个函数被称为执行器函数 里面执行异步任务 // 3. 回调函数接收两个参数 resolved rejected 两个参数都为函数类型 // 4. 异步操作执行成功了 执行resolved(value) 失败了执行rejected(reason) const p = new Promise((resolved, rejected)=>{ setTimeout(()=>{ // 模拟异步任务 如果当前时间为偶数就成功 否则就失败 const time = Date.now() time % 2 == 0 ? resolved(执行成功 ${time}) : rejected(执行失败 ${time}`) },1000) })
p.then( // 接收成功的value数据 onResoled value => { console.log(`onResoled ${value}`) }, // 接收失败的reason数据 onRejected reason => { console.log(`onRejected ${reason}`) } )
```
为什么使用promise
-
指定回调函数的方式更加灵活 纯回调函数必须在启动异步任务前指定 promise 可以在启动异步任务后指定 支持链式调用,解决回调地狱问题 回调函数嵌套调用