zoukankan      html  css  js  c++  java
  • 使用async/await消除callback hell

    使用async/await消除callback hell

    通过Future回调中再返回Future的方式虽然能避免层层嵌套,但是还是有一层回调,有没有一种方式能够让我们可以像写同步代码那样来执行异步任务而不使用回调的方式?答案是肯定的,这就要使用async/await了,下面我们先直接看代码,然后再解释,代码如下:

    task() async {

       try{

        String id = await login("alice","******");

        String userInfo = await getUserInfo(id);

        await saveUserInfo(userInfo);

        //执行接下来的操作   

       } catch(e){

        //错误处理   

        print(e);   

       }  

    }

    • async用来表示函数是异步的,定义的函数会返回一个Future对象,可以使用then方法添加回调函数。
    • await 后面是一个Future,表示等待该异步任务完成,异步完成后才会往下走;await必须出现在 async 函数内部。

    可以看到,我们通过async/await将一个异步流用同步的代码表示出来了。

    其实,无论是在JavaScript还是Dart中,async/await都只是一个语法糖,编译器或解释器最终都会将其转化为一个Promise(Future)的调用链。

    https://book.flutterchina.club/chapter1/dart.html

  • 相关阅读:
    利用GitHub+Node.js+Hexo搭建个人博客(一)
    更丰富的符号工具包 Font Awesome
    Markdwon入门2
    Codechef:Fibonacci Number/FN——求通项+二次剩余+bsgs
    二次剩余理论
    基姆拉尔森公式和蔡勒公式(计算星期几)
    幂方程(模意义下)
    etcd
    mysql group by
    UUID
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11045345.html
Copyright © 2011-2022 走看看