zoukankan      html  css  js  c++  java
  • promise 和 async / await

    promise 的存在:

      为了解决异步问题,就是当某个异步执行完之后执行某件事,

      什么是异步:

        例:

          console.log(1)

          setTimeout(()=>{

            console.log(2)

          },1000)

          console.lig(3)

          懂异步的知道打印顺序为1,3,2。不知道一定说1,2,3.其实这就是异步

    promise 的三个状态:

      fulfilled:成功。  rejected: 失败。 pending : 进行中

    promise的静态方法与成员方法:

      静态方法:

      

      promise.all():

      例:

        

         都执行完成后执行.then

      promise.race():  使用方法与all相同,都是数组参数,不同的是只要有一个执行完成就执行.then

      

       成员方法:

      

    生成promise :

      let mypromise=new Promise(callbck(fn1,fn2){})

      callbck中,成功执行fn1,失败执行fn2

    使用promise:

      myPromise.then(fn).catch(fn)

    为什么使用promise:

      为了得到异步操作获得结果

    promise是同步的还是异步的?

      可以说它是一个容器,根据容器内部的操作决定,而.then .catch是异步的

    简单举例:

      

      

       可以看出根据一个异步执行的成功与失败执行不同任务

      

    async / await

         是什么:

        是Promise的语法糖,它能实现的效果都能用then链来实现

    async函数:

      async函数的返回值是Promise对象

        返回的值会被当做resolve的值,return的值,出错也会被捕获到

    await (等待):

      1.await关键字后面可以跟任意表达式

      2.await必须写在async函数里面

      3.await不能捕获到promise的报错,所以要用trycatch包住

      4.如果是promise对象,会等promise执行完再执行 下面的代码,换言之,会阻塞后面的同步代码

    例:

      

  • 相关阅读:
    清空
    从一个例子看现代C++的威力
    C++11实现一个自动注册的工厂
    REST RPC架构思想
    thinking in object pool
    worksteal thread pool
    check member function
    C# string 常用功能的方法扩展
    C#设计模式总结
    JAVA过滤器和拦截器的区别
  • 原文地址:https://www.cnblogs.com/hqkbk/p/14156987.html
Copyright © 2011-2022 走看看