3、异步编程:从回调到响应式扩展的探索

异步编程:从回调到响应式扩展的探索

1. 同步与异步计算

在函数没有副作用的情况下,时间是另一个重要问题。步骤 1、2 和 3 可能会立即完成,也可能因工作性质而无法完成。关键在于如何确保这些步骤按正确顺序运行。一种方法是将这些函数组合在一起,使一个函数的输出成为下一个函数的输入,形成步骤链。传统做法是嵌套一系列回调函数,应用程序的运行时模型类似如下流程:

graph LR
    A[Step 1] -->|Calls step 2| B[Step 2]
    B -->|Calls step 3| C[Step 3]

这种嵌套的控制流比同步的直线模型更难理解。在上述流程中,步骤 1 先运行,完成后调用步骤 2,接着步骤 3 执行,以此类推。这表明步骤之间存在时间依赖或时间耦合,即一个步骤在前一个步骤完成后立即开始,形成命令链。回调函数用于响应之前的异步请求并开始处理其数据,常见于顺序 AJAX 请求,也适用于其他基于事件的系统,如按键、鼠标移动、数据库读写等,这些系统都依赖回调函数。

2. 回调函数是否过时

答案是否定的。在处理与用户或外部服务的简单交互时,使用范式来处理基于事件或异步代码并非必要。如果编写一个简单的脚本发出单个远程 HTTP 请求,RxJS 有些大材小用,回调函数仍然是完美的解决方案。然而,当实现中等至高级复杂度的状态机,如动态 UI 或服务编排时,结合函数式和响应式范式的库就会发挥出优势。例如,编排多个使用多个微服务的业务流程的执行、数据混搭,或者实现页面上多个相互交互的小部件组成的丰富 UI 的功能。

<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值