ES6中promise的使用

关于es6中promise的使用,我也看了其它的博客,但是这里要强调一点,promise是优化回调地狱的问题,并不是“解决”
Promise本身是一个对象,是一个构造函数,它需要传入一个参数,并且这个参数必须是函数;传入的这个函数本身包含两个参数resolve和reject,这两个参数也分别是函数
1.promise存在的三个状态,pedding(正在进行),reslove(已完成),reject(已失败)
2. 基础语法:

 var p = new Promise(function(resolve,reject){
            // 已完成状态确定
            resolve();
            // 已失败状态确定
            reject();
        })
        p.then(function(){
            console.log("已完成");
        }).catch(function(){
            console.log("已失败")
        })

其中then方法有两个参数一个是resolve,一个是reject,但由于Promise抛出错误具有冒泡性质,会一直向后传递,传到catch中,所以一般错误处理放在catch中,then中只处理成功。
补充:
3. promise的方法:
实例的方法:
– - var p = new Promise(()=>{})
– - p.then()
– - p.catch()
构造函数的方法:
– - Promise.all([p1,p2,p3]);// 所有promise的状态都是成功,才成功,只要有一个失败,就是失败
– - Promise.race([p1,p2,p3]);//只要有一个状态结束了,就执行对应的结果,不管是成功还是失败
4.最终使用:

 function ajax(){
        return new Promise(function(resolve,reject){
            // 开启异步的程序
            // 异步程序执行完毕,得到状态后,根据状态执行已完成或已失败
                // 已完成状态确定
                resolve();
                // 已失败状态确定
                reject();
        })
    }
    ajax().then(()=>{}).catch(()=>{})

你可能感兴趣的:(JAVASCRIPT,javascript,js)