纯函数可以异步吗?

2024-05-04

在浏览纯函数的定义时,它通常定义有两个特征:

1)给定相同的输入应该产生相同的输出

2)不应产生任何副作用

这是否也意味着纯函数不应该是异步的?如果不是,怎么会这样?如果是的话,我很想看到 JavaScript 中异步纯函数的一些示例。


是的,异步函数通常不是纯粹的,因为它与要求 #2 冲突:无副作用。

我们使用异步函数的大多数东西本质上都是有副作用的:I/O、网络东西、计时器。但即使我们忽略这些,承诺本身也依赖于某种全局状态来实现异步:事件循环。这通常不符合我们对纯度的定义。

另一方面,在争论函数的纯度时,我们可以简单地忽略这些,就像我们忽略计算对现实世界机器的所有低级影响和计时一样。如果您想证明您的异步函数是纯粹的,那么您应该始终明确地声明这一假设。当争论两个异步值的等价性时,您需要对如何建模异步效果有一个复杂的想法,例如在评价中Promise.race.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

纯函数可以异步吗? 的相关文章

随机推荐

  • python 在单击的 QTreeview 项目复选框上发出信号已更改

    当树视图项目的复选框发生更改时 如何发出信号 import sys from PySide import QtGui QtCore class Browser QtGui QDialog def init self parent None
  • 线程同时打印会弄乱文本输出

    我在应用程序中使用 4 个线程 它们返回我想要打印给用户的文本 由于我想避免线程独立打印这些文本 因此我创建了一个类来管理它 我不知道我在这里做错了什么 但它仍然不起作用 您可以在下面看到代码 from threading import T
  • 有哪些用例可以证明 310 OffsetDatetime 的合理性?

    偏移日期 http threeten sourceforge net apidocs javax time calendar OffsetDate html表示带有区域偏移的日期 我不明白这个类的用途 证明它存在的主要用例是什么 在分析日期
  • 已弃用的代码: vs style="font-weight:bold;"

    我一直用 b 标记为粗体 因为这是我很久以前就被教做的方式 但现在我的 IDE 总是告诉我 b 已弃用并使用 css 样式 假设他们希望我使用 div style font weight bold Bold Text div 我的 IDE
  • MongoDB 中的游标是什么?

    我们对最终发生的事情感到困扰cursor not found exceptions对于一些 Morphia 查询asList http mongodb github io morphia 1 0 guides querying 我找到了一个
  • 在 Hadoop 中处理带标头的文件

    我想在 Hadoop 中处理很多文件 每个文件都有一些头信息 后面跟着很多记录 每个记录都存储在固定数量的字节中 对此有何建议 我认为最好的解决方案是编写一个自定义的InputFormat http hadoop apache org co
  • 声明指令 templateUrl 相对于 root

    我目前正在声明相对于当前窗口位置的 templateUrl cvApp directive personalDetails function return restrict A templateUrl Scripts app templat
  • Tensorflow lite 目标检测示例中相机的屏幕尺寸 [水平屏幕]

    在tensorflow lite示例对象检测中 相机不会拍摄整个屏幕 而只会拍摄一部分 我试图在 CameraActivity CameraConnectionFragment 和 Size 类中找到一些常量 但没有结果 所以我只是想要一种
  • Android:Notification.DEFAULT_VIBRATE是否需要振动权限?

    有时我读到 notification defaults Notification DEFAULT VIBRATE and notification defaults Notification DEFAULT ALL 需要振动权限
  • 从 WebAPI 发送大文件。内容长度为 0

    我正在尝试将大文件 GB 从一个WebAPI NET Core 发送到另一个WebApi Net Core 我已经设法发送较小的文件作为多部分请求的一部分 就像上一篇文章中那样 link https forums asp net t 209
  • 无法自省类 [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration]

    我使用 spring boot 2 1 1 创建了一个项目 当我尝试提升它时 出现以下错误 2018 12 10 19 23 14 837 ERROR 8096 main o s boot SpringApplication 应用程序运行失
  • UTF-8 和 Unicode,0xC0 和 0x80 是什么意思?

    在过去的几天里 我一直在阅读有关 Unicode 和 UTF 8 的内容 并且经常遇到与此类似的按位比较 int strlen utf8 char s int i 0 j 0 while s i if s i 0xc0 0x80 j i r
  • 使用sql将行转换为列,反之亦然 - oracle

    我有这张表 create table history date check DATE type VARCHAR2 30 id type NUMBER total NUMBER 正在选择 select from history order b
  • 是否可以通过证书仅保护一个 Spring Boot Rest 端点?

    有关架构的一些信息 我们正在 Cloud Foundry 中运行 使用 https 路由 我们有一个网关 Spring Cloud Netflix zuul 我们的应用程序由令牌进行内部保护 如果您需要其他信息 请询问 现在我们想要保护网关
  • 警告:c 中指针和整数之间的比较[默认启用]

    我想检查用户输入是否仅包含数字 所以 我使用以下代码 for i 0 argv 1 i NULL i if isdigit argv 1 i printf Error return 1 它工作得很好 但我收到了这个警告 warning co
  • 预计来电次数:>= 1 已接来电次数:0

    我正在学习带有钩子的reactjs表单 现在我想使用jest和enzyme测试提交时的表单 这是我的登录组件 import React from react function Login const email setEmail useSt
  • 弹性项目的等高子项

    我在创建 Flexbox 响应式网格时遇到问题 希望有人能给我指出正确的方向 我想要所有的 blockdiv 的高度相等 并且 bottomdiv 绝对定位到底部 这实际上在当前的解决方案中有效 但是当 的时候h2标题太长 达到了2行 我想
  • 如何定义基于标签的组织结构?

    原标题 有没有办法在基于标签的组织方法上强制建立关系结构 我有一些实体 它们有一系列属性 一些属性影响实体可以具有的其他属性 许多属性被组织成组 并且有时实体被要求具有来自某些组的一定数量的属性 或者可能具有来自某些组的一定范围的属性 有没
  • 如何通过j2me api解析包含负数的字符串?

    我有一个带有数字的字符串 我必须解析这个字符串并将这些数字存储在 int float 等中 相应地 String str 100 2 0 100 19 99 0 我可以这样做Integer parseInt and Float parseF
  • 纯函数可以异步吗?

    在浏览纯函数的定义时 它通常定义有两个特征 1 给定相同的输入应该产生相同的输出 2 不应产生任何副作用 这是否也意味着纯函数不应该是异步的 如果不是 怎么会这样 如果是的话 我很想看到 JavaScript 中异步纯函数的一些示例 是的