async和await

异步加载的Javascript代码中不允许使用document.write向页面载入内容

一:与Promise的区别

使用promise异步请求可是缓解es5异步请求的回调地狱,还需要使用then方法并传入回调函数,看起来还不够清爽。

    let p = new Promise((resolve)=>{
      setTimeout(() => {
        resolve('月薪3000怎么办');
      }, 5000);
    });

    p.then((res)=>{
      alert(res);
    });

二:async和await

async和await配合使用,可以使异步请求看起来跟同步请求一样清爽利索。比如对上面代码的改造

    let p = new Promise((resolve)=>{
      setTimeout(() => {
        resolve('月薪3000怎么办');
      }, 5000);
    }); 

    async function timer(){
      let res = await p;
      console.log(res);
    }
    timer();


    // 如果上面timer中把res return出来,那么在执行timer时需要加上await关键字。而await又不能单独 
    // 使用,所以还需要用async函数把await包起来接收

可以看到,通过await可以直接接收resolve方法中传入的值,即避免了promise调用then方法并传入回调函数的步骤。直接声明变量接收数据异步请求的数据即可,使代码看起来跟同步一样。

await后面需要跟着Promise实例,axios刚好就返回promise实例,所以他们配合使用就很丝滑。如下

  • 如下为普通axios请求:
    //普通的axios请求
    axios({
      url:"/api/TimeLineRead/foreend",
      method:"post"
    }).then((res)=>{
      let json = res.data.data;
    });
  • 如下为配合await使用:
    async function getJson(){
      let yeah = await axios({url:"/api/TimeLineRead/foreend",method:"post"})
      // 开始处理yeah
    }

  

摆脱调用then方法,直接接收resolve的传参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_qqq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值