美文网首页
关于promise对象学习

关于promise对象学习

作者: QRFF | 来源:发表于2018-05-31 21:48 被阅读0次
    • 我们在使用函数的时候经常需要在函数的参数传入另外一个函数,一层一层传递,很容易造成回调地狱,这样的代码不利于维护;
    • promise是个构造函数对象,解决了回调问题,它有三种状态,resolve,reject,pedding,常用到的方法则有 then,catch,all,race
    • 这是我看到有关promise入门最好的文章https://juejin.im/post/5afe6d3bf265da0b9e654c4b
          //  let p = new Promise((resolve,reject)=>{
        //      setTimeout(function(){
        //          var num = Math.ceil(Math.random()*10)
        //          if(num<=5){
        //              resolve(num)
        //          }
        //          else{
        //              reject('数字太大了')
        //          }
        //      },1000)
        //  })
         
         //reject用法
        //  p.then((data)=>{
        //      console.log('resolved',data)
        //  },(err)=>{
        //      console.log('rejected',err)
        //  })
    
    
        //catch的用法
        // p.then((data) => {
        // console.log('resolved',data);
        // console.log(somedata); //此处的somedata未定义
        // })
        // .catch((err) => {
        //     console.log('rejected',err);
        // })
    
    
        //all的用法
        // let p1=new Promise(function(resolve,reject){})
        // let p2=new Promise(function(resolve,reject){})
        // let p3=new Promise(function(resolve,reject){})
    
        // let p = Promise.all([p1,p2,p3])
        // p.then(function(){
        //     // 三个都成功则成功  
        // },function(){
        //     // 三个都成功则成功  
        // })
    
        //race的用法
        // function requestImg(){
        //     var p = new Promise((resolve,reject)=>{
        //         var img = new Image();
        //         img.onload=()=>{
        //             resolve(img)
        //         }
        //         img.src='图片的路径'
        //     })
        //     return p;
        // }
        // function timeout(){
        //     var p = new Promise((resolve,reject)=>{
        //         setTimeout(()=>{
        //             reject('图片请求超时')
        //         },5000)
        //     })
        //     return p;
        // }
        // Promise.race([requestImt(),timeout()]).then((data)=>{
        //     console.log(data)
        // }).catch((err)=>{
        //     console.log(err)
        // })
    

    相关文章

      网友评论

          本文标题:关于promise对象学习

          本文链接:https://www.haomeiwen.com/subject/nfxtsftx.html