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

  • 相关阅读:
    django之session配置
    django之基于cookie和装饰器实现用户认证
    django之分页插件
    python小程序之并发连接
    django之模版的自定义函数
    django之母版的继承
    jQuery 模态对话框示例
    python学习笔记10 ----网络编程
    python 学习笔记9(面向对象)
    python 学习笔记8 (模块)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11045345.html
Copyright © 2011-2022 走看看