zoukankan      html  css  js  c++  java
  • JS的ES6的async

    1.async概念:

    • 真在意义上解决异步回调函数的问题(由于promise的then方法中还是使用回调函数,而async中await并没有使用回调函数真正意义上解决回调函数),同步流程表达异步操作。

    • 最为常用并与promise结合使用。

    • 本质是Generator的语法糖。

    2.特点:

    • 不需要像Generator去调用next方法,遇到await等待,当前的异步操作完成就往下执行。

    • 返回为Promise对象,可以用then方法进行下一步执行

    • async取代Generator函数的星号*,await取代Generator的yield

    • 语义上更为明确,使用简单,没有任何副作用

    3.使用:

    • 异步任务使用promise包装,await之后的异步任务通常返回一个promise的实例。

    • 通过修改promise实例的状态通知await以及给await设定返回值(resolve(data))

     1 let num = 1;
     2 
     3 function promiseUtil(){
     4   return new Promise((resolve,reject)=>{
     5 
     6     setTimeout(()=>{
     7 
     8       console.log("异步任务"+num+"执行成功");
     9 
    10       let data = "我是异步任务"+num+"返回的数据xxxx";
    11       num++;
    12 
    13       resolve(data);
    14       
    15     },2000);
    16   })
    17 }
    18 
    19 async function AsyncUtil(){
    20 
    21   console.log("函数开始执行");
    22 
    23   let result = await promiseUtil();   //返回的是一个Promise对象,可以使用then继续调用
    24   console.log("异步任务返回数据:"+result);
    25 
    26   console.log("函数继续执行");
    27 
    28   result = await promiseUtil();
    29   console.log("异步任务返回数据:"+result);
    30 
    31   console.log("函数执行结束");
    32   
    33 }
    34 
    35 AsyncUtil();

  • 相关阅读:
    触发器
    数据库一键退出脚本
    集合
    Android 自定义控件之继承ViewGroup创建新容器
    web学习测试环境
    ref:ubuntu下如何批量修改文件后缀名
    ref:Adding AFL Bloom Filter to Domato for Fun
    ref:phpstorm配置远程调试(xdebug)(docker中)
    ref:PHP反序列化漏洞成因及漏洞挖掘技巧与案例
    ref:【干货分享】PHP漏洞挖掘——进阶篇
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12057460.html
Copyright © 2011-2022 走看看