zoukankan      html  css  js  c++  java
  • Promise 之 async & await

    promise解读

    说到promise就得说到同步和异步,JS的执行环境是单线程的,也就是说一次只能完成一个任务,如果有多个任务,则会发生阻塞,而异步模式可以一起执行多个任务,常见的异步调用如:定时任务、ajax、事件函数。

    • promise主要解决的是异步深层嵌套的问题,避免嵌套地域的问题

    • 下面我们简单的写个Demo来说说基本用法

    promise的基本API

    • 通过这列子,我们可以看到promise有三个API,分别是:.then、.catch、.finally

      • .then : 得到异步任务的正确结果,也就是上面的success

      • .catch : 得到异常的信息,也就是上面的error

      • .finally:无论如何都会执行,在java中一般用来释放资源

    • 上面这两个方法可以通过类名直接调用,为静态方法

      • .all : 该方法接受一个数组中对象均为Promise实列的数组,relect也是个数组,一一对应每个请求的响应,回调为jso字符串

      • .race : 该方法接受一个数组中对象均为Promise实列的数组,当其中一个请求的状态发生变化的时候,就会拿到响应,不会等待其余的响应,直接调起回调

    async 和 await

    • async作为一个关键字放到函数前面

      • 任何一个async函数都会隐式返回一个promise

    • await关键字只能在使用async定义的函数中使用

      • await后面可以直接跟一个 Promise实例对象

      • await函数不能单独使用

    • async/await 让异步代码看起来、表现起来更像同步代码

    • async处理多个异步函数的时候,我们添加了await关键字,当前的请求在返回后才会执行下一句代码

    .

  • 相关阅读:
    【HNOI 2002】 营业额统计
    【BZOJ 3224】 普通平衡树
    【NOIP2014】 联合权值
    【NOIP2016】 组合数问题
    BZOJ2212 POI2011Tree Rotations(线段树合并)
    LOJ114 k大(xiao)异或和(线性基)
    LOJ121 动态图连通性(LCT)
    BZOJ3569 DZY Loves Chinese II(随机化+树上差分+线性基)
    BZOJ3237 AHOI2013连通图(线段树分治+并查集)
    BZOJ2208 JSOI2010连通数(floyd+bitset)
  • 原文地址:https://www.cnblogs.com/msi-chen/p/12713414.html
Copyright © 2011-2022 走看看