同步异步

同步异步

  • 同步API:只有当前API执行完成后,才能继续执行下一个API

  • 异步API:当前API的执行不会阻塞后续代码的执行

    ① 异步API需要通过回调函数获取结果
    
    ② fs.readFile读取文件和事件处理函数都是要回调函数获取结果
    

1)promise

Promise出现的目的是解决Node.js异步编程中回调地狱的问题。

  1、使用 new 构造promise的实例对象
  2、promise函数有 resolve 和 reject 两个参数
  3、实际上promise是在异步API外包裹着它们,并返回执行成功或失败的结果到外边
  4、使用promise的 then 方法获取成功结果到外部
  5、使用promise的 catch 方法获取失败结果到外部,允许链式使用

2)promise解决回调地狱问题

  1、先看有几个异步API,有几个异步API就有几个promise实例对象
  2、创建promise实例对象并放入对应异步API
  3、把各promise放入新建的函数中,并将promise实例对象设置为 return 值
  4、调用第一个函数,使用 then 方法输出并设置它的 return 值为下一个要执行的函数
  5、使用链式 then 方法,即可按照此顺序执行多个异步API

3)es7新增异步函数

异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。

  异步函数即:在普通函数前面加上 ' async ' 关键字
  *await关键字
    ① 它只能出现在异步函数中
    ① await promise 可以暂停异步函数的执行 等待promise对象返回结果后再向下执 行
    ① 它还可以通过返回值方式拿到返回结果
    ① 它后面只能跟promise对象
  *promisify方法
    ① promisify 方法在 util 模块中 
    ① 它可以 对异步函数进行包装,使它返回一个promise对象,以支持promise语法
    ③ 异步函数中,使用 run 方法读取
posted @ 2020-12-12 12:42  黛黛318  阅读(65)  评论(0编辑  收藏  举报