一、什么是Promise
promise其实就是用来解决回调地狱的问题的,从语法上,它就是一个构造函数,从功能上,就是用对象来封装一个异步操作,同时获取它的结果
二、理解resolve和reject
在异步操作中,满足条件执行resolve,不满足执行reject
const p = new promise((resolve,reject)=>{
//异步操作代码
setTimeout(function(){
var num = Math.ceil(Math.random()*10);
if(num<5) {
resolve(num)
} else {
reject('数字太大了')
}
}, 2000)
})
// fn1执行的是resolve方法,fn2是reject方法
p.then(fn1,fn2)
function fn1(){
console.log('resolve')
}
function fn2(){
console.log('reject')
}
三、awiait/async与promise
awiait/async是es7写法,相对于promise写法优雅,是对promise的封装,将异步操作转化为同步处理