zoukankan      html  css  js  c++  java
  • ES6学习笔记之async函数

    async函数跟promise,generator一样也是处理异步的,但是async的写法更为简洁

    大家可以先来看下async的特点:

    1、语义化强,async就是异步的,await就是等待,很好理解

    结构就是async function a(){

      await xxx

    }

    2、await要放在async组合使用,不能跟其他函数搭配

    3、async函数返回的是一个Promsie对象,所以后面还可以跟then这些搭配使用

    4、如果async里面的promise是reject,那么后面的代码就不会再执行了

    举个栗子:

    async function fn(){

      await Promise.reject("出大事了!!");

      let a = await Promise.resolve("很棒!");

      console.log(a);

    }

    fn.().then(res=>{

      console.log(res);

    }),catch(err=>{

      console.log(err)

    })

    //输出:出大事了

    在这个例子中,async跟await搭配使用,因为在fn里面先执行了promise.reject,所以下面的“很棒”就不会再执行了,假如将这个两个的顺序调换一下,先resolve,再reject,则最后两个结果都能够输出

    async在处理读取文件上尤为出色,用promise跟generator需要写很多次的代码,async只需要用await按顺序写就可以,非常的简洁:

    async function readFile(){ 

      let a1 = await read('1.txt');

      let a2 = await read('2.txt');

      let a3 = await read('3.txt');

      console.log(a1.toString());

      console.log(a2.toString());

      console.log(a2.toString());

    }

  • 相关阅读:
    【Winform】Webservice调用服务器端EXE
    LeetCode: Word Ladder II
    LeetCode: Maximal Rectangle
    Algorithm: 拓扑排序
    Algorithm: 匈牙利算法
    LeetCode: Scramble String
    LeetCode: Integer to Roman
    LeetCode: Roman to Integer
    算法导论:基础知识。
    C++主函数main()讲解
  • 原文地址:https://www.cnblogs.com/hongyafang/p/12427545.html
Copyright © 2011-2022 走看看