前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >异步编程

异步编程

原创
作者头像
李才哥
修改2021-03-01 14:35:02
7300
修改2021-03-01 14:35:02
举报
文章被收录于专栏:李才哥李才哥

异步编程

函数式编程

高阶函数

高阶函数则是可以把函数作为参数,或是将函数作为返回值的函数,

除了通 常意义的函数调用返回外,还形成了一种后续传递风格

在自定义事件实例中,通过为相同事件注册不同的回调函数,可以很灵活地处理业务逻辑

偏函数用法

通过指定部分参数来产生一个新的定制函数的形式就是偏函数

异步编程的优势与难点

优势

Node带来的最大特性莫过于基于事件驱动的非阻塞I/O模型

只要合理利用Node的异步模型与V8的高性能,就可以充分 发挥CPU和I/O资源的优势

难点

try/catch的功效在此异步编程中不会发挥任何作用

函数嵌套过深

阻塞代码

多线程编程

异步转同步

异步编程解决方案

事件发布/订阅模式

事件发布/订阅模式可以实现一个事件与多 个回调函数的关联,这些回调函数又称为事件侦听器

Promise/Deferred模式

Promise通过封装异步调用,实现了正向用例和反向用例的分离以及逻辑处理延迟,

流程控制库

尾触发:需要手工调用才能持续执行后续调用的,关键字 next

流程控制模块async

· 异步的串行执行

· 异步的并行执行

· 自动依赖处理

流程控制库 Step

· 并行任务执行

· 结果分组

异步编程方案wind

· 异步任务定义

· $await()与任务模型

· 异步方法转换辅助函数

异步并发控制

bagpipe的解决方案

通过一个队列来控制并发量

如果当前活跃(指调用发起但未执行回调)的异步调用量小于限定值,从队列中取出执行

如果活跃调用达到限定值,调用暂时存放在队列中

每个异步调用结束时,从队列中取出新的异步调用执行

拒绝模式

超时控制

async的解决方案

async也提供了一个方法用于处理异步调用的限制:parallelLimit()。

parallelLimit()方法的缺陷在于无法动态地增加并行任务

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数式编程
    • 高阶函数
      • 高阶函数则是可以把函数作为参数,或是将函数作为返回值的函数,
      • 除了通 常意义的函数调用返回外,还形成了一种后续传递风格
      • 在自定义事件实例中,通过为相同事件注册不同的回调函数,可以很灵活地处理业务逻辑
    • 偏函数用法
      • 通过指定部分参数来产生一个新的定制函数的形式就是偏函数
  • 异步编程的优势与难点
    • 优势
      • Node带来的最大特性莫过于基于事件驱动的非阻塞I/O模型
      • 只要合理利用Node的异步模型与V8的高性能,就可以充分 发挥CPU和I/O资源的优势
    • 难点
      • try/catch的功效在此异步编程中不会发挥任何作用
      • 函数嵌套过深
      • 阻塞代码
      • 多线程编程
      • 异步转同步
  • 异步编程解决方案
    • 事件发布/订阅模式
      • 事件发布/订阅模式可以实现一个事件与多 个回调函数的关联,这些回调函数又称为事件侦听器
    • Promise/Deferred模式
      • Promise通过封装异步调用,实现了正向用例和反向用例的分离以及逻辑处理延迟,
    • 流程控制库
      • 尾触发:需要手工调用才能持续执行后续调用的,关键字 next
      • 流程控制模块async
      • 流程控制库 Step
      • 异步编程方案wind
  • 异步并发控制
    • bagpipe的解决方案
      • 通过一个队列来控制并发量
      • 如果当前活跃(指调用发起但未执行回调)的异步调用量小于限定值,从队列中取出执行
      • 如果活跃调用达到限定值,调用暂时存放在队列中
      • 每个异步调用结束时,从队列中取出新的异步调用执行
      • 拒绝模式
      • 超时控制
    • async的解决方案
      • async也提供了一个方法用于处理异步调用的限制:parallelLimit()。
      • parallelLimit()方法的缺陷在于无法动态地增加并行任务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档