Promise和Async/Await常用法

1.Promise
Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。其实这里用“成功”和“失败”来描述并不准确,按照标准来讲,resolve是将Promise的状态置为fullfiled,reject是将Promise的状态置为rejected。

    let p = new Promise((resolve,reject) => {
       //ajax
        resolve('success');
        console.log('after resolve');
        reject('error');
    });
    p.then(result => {
        console.log(result);
    }).catch(result => {
        console.log(result);
    })

**2.async&&await** 

   
   **1).async 是让方法变成异步**
    
     async function getData(){
     return '这是一个数据';
     }
     console.log(getData());  //Promise { '这是一个数据' }


**2).如何获取async 异步方法里面的数据的第一种方法**

     async function getData(){
    
         return '这是一个数据';
     }
     var p=getData();
     p.then((data)=>{
         console.log(data);
     })

**3).await 是等待异步方法执行完成,可以获取异步方法里面的数据,但是必须得用在异步方法里面**

    async function getData(){
    
        return '这是一个数据';
     }
     async function test(){
        var d=await getData();
        console.log(d);
     }
     test();


**4).await 阻塞的功能 ,把异步改成一个同步**

    async function getData(){
        console.log(2);
       return '这是一个数据';
    }
    async function test(){
       console.log(1);
       var d=await getData();
       console.log(d);
        console.log(3);
    }
    test();  //1  2  3


**5).async 定义的方法返回的是 Promise对象。**

    /*
     function getData(){
        return new Promise((resolve,reject)=>{
              setTimeout(()=>{
                     var username='张三';
                     resolve(username);
              },1000)
         })
     }
     var p=getData();
     p.then(function(d){
            console.log(d);
     })
    * */
    function getData(){
        return new Promise((resolve,reject)=>{
            setTimeout(()=>{
                var username='张三';
                resolve(username);
            },1000)
        })
    }
    async function test(){
        var data=await getData();
        console.log(data);
    }
    test();


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值