首页 > 其他 > 详细

promise基本使用

时间:2020-05-27 14:25:54      阅读:56      评论:0      收藏:0      [点我收藏+]

Promise是JS进行异步编程的新的解决方案(旧的是纯回调)

  语法上:Promise是一个构造函数

  功能上:Promise对象用来封装一个异步操作并可以获得其结果

 

Promise的状态改变

  成功:pending变为resolved,失败:pending变为rejected

  只有这两种,且一个promise对象只能改变一次

  无论成功还是失败,都会有一个结果数据

  成功的结构数据一般称为vlaue,失败的结果数据一般称为 reason

 

Promise的基本流程

技术分享图片

new Promise( )  ->  执行异步操作

  ①成功:执行 resolve()  ->  Promise对象(resolved状态)->  回调 onResolved( )    then()         新的Promise对象

  ②失败:执行reject( )  ->  Promise对象(rejected状态)  -> 回调onRejected     then() / catch()       新的Promise对象

 

 //1,创建一个新的promise对象
    const p = new Promise((resolve,reject)=>{ //执行器函数是同步回调!
        console.log(‘执行excutor‘); //立刻执行
        //2,执行异步操作
        setTimeout(()=>{
            const time = Date.now()
            if(time%2===0){
                resolve(‘成功的数据,time=‘+time); //3.1 如果成功了, 调用 resolve(value)
            }
            else{
                reject(‘失败的数据,time=‘+time); //3.2 如果失败了, 调用 reject(reason)
            }
        },1000)
        console.log(‘123‘); //先输出执行 excutor
    })

    p.then(
        value=>{ //接收成功得到的value  onResolved(当成功的时候)
            console.log(‘成功的回调:‘,value)
        },
        reason=>{ //接收失败得到的reason   onRejected
            console.log(‘失败的回调:‘,reason)
        }
    )

    p.catch(
        reason=>{
            console.log(‘p.catch:‘,reason); // 接收得到失败的reason数据  onRejected 回调执行
        }
    )

    //执行excutor
    //123
    //成功的回调: 成功的数据,time=1590557706934 / 失败的回调: 失败的数据,time=1590557756329

  

promise基本使用

原文:https://www.cnblogs.com/shanlu0000/p/12972686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!