【问题标题】:What is asynchronous and Is Reactive Programming must be asynchronous?什么是异步,响应式编程必须是异步的吗?
【发布时间】:2021-08-17 14:07:30
【问题描述】:

在维基中:

在计算中,反应式编程是一种声明式编程范式,涉及数据流和变化的传播。使用这种范例,可以轻松表达静态(例如,数组)或动态(例如,事件发射器)数据流,并且还可以传达相关执行模型中存在推断的依赖关系,这有助于自动传播更改的数据流。

因此,响应式编程只是一种与数据流相关的声明式编程范式。但是为什么反应式编程在很多情况下都是异步编程呢?

【问题讨论】:

  • 定义你认为的异步意味着什么,因为在我的定义中,进行反应式编程的唯一方式是异步的。另一种方法是不断进行条件检查。如果可能,显示代码来对比这两个定义。
  • FRP中对某个事件的处理(通常)是同步。但是,调用副作用通常是异步的,并且由于系统是事件驱动的,因此会导致(异步)有效操作及其相关的最终结果松散耦合的系统。在该系统中,某个动作与其相关结果之间没有概念。只有事件进入系统。您可能会认为它是异步的,因为该事件是之前调用副作用的结果。

标签: asynchronous reactive-programming


【解决方案1】:

异步编程是发生在主执行线程之外的执行用户。这种趋势包括:

  1. 定义一些工作要做(例如:进行远程调用)
  2. '提交'如果主线程执行它,它立即返回一个对象,例如Promise,或者一个Future给主线程。该对象可用于轮询和检索异步计算的结果。
  3. 从先前返回的对象产生结果

这允许我们将执行逻辑定义为数据,并将其传递给在正确的时间显式执行,或一些可变的次数。

这适用于响应式编程,因为这种范式是声明式的。程序员在他们的程序中声明数据结构和数据转换,框架通过应用必要的转换来处理对变化的反应。

通过将数据转换编写为异步代码,响应式框架可以协调需要执行哪些转换,并在内部管理异步函数的调用及其结果的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2021-04-18
    • 2021-02-04
    • 2018-05-15
    • 1970-01-01
    相关资源
    最近更新 更多