Promise
关于promise ,还是觉得很抽象,还是有很多不懂的地方,这边我再仔细研究下
因为太抽象,我就形象点的来表达了
- 首先还是得复习一下什么是异步这个概念
- 打个比方,我去餐馆点餐,但是我正在写我的ppt.
- 但是我很饿,需要吃饭,这时候服务员跑过来.然后我点菜.
- 点完菜,我继续写ppt.
- 而在我点完菜之后,服务员把菜单给厨师>>厨师开始做饭>>厨师饭做完了>>厨师交给服务员>>服务员再把菜给我放在桌子上>>我ppt写完了>>开始吃饭
以上就是形象化的异步概念
promise
英文翻译: 承诺,许诺,答应…
- 服务员会承诺会把菜端上来给我
- 这个对象有三种状态: pendinfg(进行中),resolved(已完成),rejected(以失败)
- 就好像服务员承诺会把菜端上来给我,分别对应,厨师正在做菜,厨师菜做完了并把菜给我,厨师菜做失败了没给我菜.
promise的作用
把异步代码写成同步形式
当我new Promise()
时,就是在许下一个承诺了.
下面举个例子
- 我许下一个承诺
- 我承诺1秒之后,如果num大于0.5,那么就成功resolve,否则失败reject
- 规定成功时执行什么函数,失败执行什么函数
- 在then()执行成功时打代码,在catch()里执行失败的代码
const pro = new Promise((resolve,reject)=>{
setTimeout(()=>{
const num =Math.random()
if(num >0.5) resolve()
else reject()
},1000)
})
pro.then(()=>console.log('这个数字比较大')).catch(()=>console.log('这个数字比较小'))