promise 初体验
promise 的 理解
js
1.抽象表达:
1)Promise 是 一门新的技术(ES6)
2) Promise 是JS 中进行异步编程的 新的解决方案
2. 具体表达:
1) 从语法上来说: Promise 是 一个构造函数
2) 从功能上来说: Promise 对象用来封装一个 异步操作并可以获取其 成功/ 失败的结果值
为什么 要用 Promise
js
1.指定回调函数的方式更加灵活
promise: 启动异步任务 => 返回 promise 对象 => 给 promise 对象绑定回调函数(甚至
可以在异步任务结束之后指定、多个)
2.支持链式调用,可以解决回调地狱的问题
1)回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调执行的条件 (回调地狱)
其缺点: 不便于阅读,不便于异常处理
2) 解决方案
promise 链式调用
代码演示
js
function getRandomNum(min,max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
let p1 = new Promise((resolve,reject) => {
setTimeout(() => {
let ranNum = getRandomNum(0,100)
if(ranNum > 30){
reject()
}else{
resolve()
}
},2000)
})
p1.then(() => {
alert('中奖')
}).catch(() => {
alert('未中奖')
})