JS promise 初体验

78 阅读1分钟

promise 初体验

promise 的 理解

js
    1.抽象表达:
        1Promise 是 一门新的技术(ES62) PromiseJS 中进行异步编程的 新的解决方案 
    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(() => {
                // 0 ~ 100 的随机数
                let ranNum = getRandomNum(0,100)

                if(ranNum > 30){
                    reject()  // 将 promise 对象的状态设为 失败
                }else{
                    resolve()  // 将 promise 对象的 状态设为 成功
                }
            },2000)
        })
        // 调用 then 和 catch 的 方法
        p1.then(() => {
            alert('中奖')
        }).catch(() => {
            alert('未中奖')
        })