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

  • 相关阅读:
    蓝桥杯 勾股数 暴力
    蓝桥杯 连接乘积 暴力
    蓝桥杯 师座操作系统 map
    蓝桥杯 洗牌 vector
    蓝桥杯 盾神与砝码称重 dfs 剪枝
    蓝桥杯 盾神与积木游戏 贪心
    RESTful风格API
    APIview使用
    linux常用命令
    python中的三种路径
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11045345.html
Copyright © 2011-2022 走看看