我可以在 Nodejs (ES7) 中解雇并忘记承诺吗?

2023-12-01

我想用 babel 运行这段代码:

redisClientAsync.delAsync('key');
return await someOtherAsyncFunction();

在异步函数中没有await第一行。这个可以吗?

我还能怎样运行我不关心的事情呢?

我可以只触发非承诺函数 del('key',null) 而不进行回调吗?


是的,您可以这样做,它将并行运行两个异步函数。你刚刚创建了一个承诺,然后又把它扔掉了。

然而,这意味着当承诺被拒绝时你不会注意到。你只会get an unhandledRejection最终如果不处理的话,你的进程将会崩溃。

这个可以吗?我怎么能运行一些我不关心的事情呢?

大概是不太好吧。如果你真的不在乎,那么你一开始就没有运行它。因此,您应该清楚明确地了解您关心什么(以及不关心什么):

  • 你想等吗? (针对副作用)
  • 你需要结果吗?
  • 你想捕获异常吗?

如果你只想等待而不关心结果值,你可以很容易地丢弃结果:

void (await someAsyncFunction()); // or omit the void keyword,
                                  // doesn't make a difference in an expression statement

如果你不关心异常,你可以使用忽略它们

… someAsyncFunction().catch(function ignore() {}) …

你可以把它扔掉,等待它,用它做任何事情。

如果你想要结果,就必须等待。如果您关心异常,但又不想等待,您可能希望与以下函数并行执行:

var [_, res] = await Promise.all([
    someAsyncFunction(), // result is ignored, exceptions aren't
    someOtherAsyncFunction()
]);
return res;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 Nodejs (ES7) 中解雇并忘记承诺吗? 的相关文章

随机推荐

  • CSS 媒体查询打印纸张尺寸

    世界各地的纸形状都不一样 我有一份文档 希望以 A4 纸和 US Letter 纸进行不同的打印 某些元素应该隐藏或显示 明显的建议是使用媒体查询 如下所示 media print and max height 280mm a4 only
  • windows机器上python的无缓冲字符输入

    我正在尝试做什么 我正在尝试设计一个具有单圈计时功能的秒表 当您按 L 时 一圈将完成 当您按 S 时 所有圈将完成 并按顺序显示计时 在 C 中 我可以使用 conio h 中的函数 getch 来完成此操作 这将非常容易 我想用 pyt
  • 显示App_Data中存储的图像

    我的 App Data 目录中有 2 个图像文件 我想在我的视图中显示它们 如下所示 foreach var media in Model div class col lg 3 col md 4 col xs 6 thumb a class
  • 如何在IDEA/WebStorm中生成JSDoc文档?

    是否可以在IDEA WebStorm中一键生成JSDoc文档 就像我用IntelliJ IDEA做JavaDoc一样 TL DR 要将 JSDoc 文档生成功能添加到 IntelliJ IDEA WebStorm Install jsdoc
  • 避免从客户端 > Web 服务 > SQL Server 进行双跳的解决方案

    我的项目涉及用户从客户端连接到 Web 服务 然后将 Web 服务连接到 SQL Server Web 服务和 SQL Server 位于不同的计算机上 由于安全需求 我们在SQL Server中不能使用混合模式 只能使用Windows身份
  • TabLayout 和 ViewHolder 的渲染问题

    我目前无法仅使用 TabLayout 和 ViewPager 渲染 am 活动 我收到此错误 Style ResourceReference namespace apk res auto type attr name textAppeara
  • 如何使用 python 查找包含特定文本的单元格?

    我正在尝试迭代 xlsx 文件并使用 python 找到包含我们公司名称的单元格 该文件由2张或多张纸组成 每张有6个公司信息 我正在寻找的每个细胞的形成如下 单元格 F6 1ST 公司 A 公司 B 单元格 G6 2ND 公司 C 公司
  • 为什么我们不能使用构造函数本身初始化 servlet?

    为什么我们必须重写 Servlet 中的 init 方法 而我们可以在构造函数中进行初始化 并让 Web 容器调用构造函数 在调用构造函数时将 ServletConfig 引用传递给 servlet 当然 容器必须为此使用反射 但容器无论如
  • 如何拉伸图像以填充 UILabel 中背景中设置的标签宽度?

    我有简单的基于视图的应用程序 我只采取了UILabel on it 以下是我在 viewDidLoad 中的代码 lblBack textColor UIColor blueColor UIImage img UIImage imageNa
  • 将变量从 JSP 传递到 servlet

    一直以来 当我在 Google 上搜索时 我得到了许多关于从 JSP 向 servlet 传递变量的答案 这些答案都发布在 Stackoverflow 中 但我想知道 我没有得到以下答案 How to pass a variable fro
  • 用python计算字母数

    我想做的是计算每个字母在字符串中出现的次数 我想将详细信息存储在字典中 以下是我的尝试 def scan string list string for letter in string list string append letter l
  • ImportError: DLL 加载失败: %1 不是 _imaging 模块的有效 Win32 应用程序

    我正在尝试使用 Python 2 7 9 中的灰度共生矩阵从图像中提取特征 我在其他答案中找到了下面给出的代码 当我运行这段代码时 我得到 ImportError 未安装 imaging C 模块 然后我安装了 PIL 模块 当我尝试导入它
  • Android - Crashlytics,在崩溃期间运行代码

    我遇到了一个严重的崩溃案例 这是由于某些异步在 SQLite 中以不正确的顺序执行操作而导致的 结果崩溃了 我花了一些时间来调试所有这些 并且访问内部数据库会有很大帮助 我知道如何访问开发设备上的内部数据库 但如果出现问题 我希望能够获得该
  • head 中存在重复的 JSON-LD 脚本

    我必须注射多个scriptJSON LD 数据的元素到head我的申请 全部都属于同一 type 这是由于从不同的数据源提取不同的字段 这种重复会导致任何问题吗 我希望谷歌能将其简单地翻译为
  • 如何检查字符串不为空?

    if string equals 如何检查字符串是否不为空 if string equals 检查 null 是通过以下方式完成的if string null 如果你想检查它是否为空或为空 你需要if string null string
  • Python - if 语句无法正常工作[重复]

    这个问题在这里已经有答案了 我刚刚开始使用 python 并且被困在一些在我看来显然应该有效的东西上 这是我的第一个代码 我只是尝试与用户进行对话 year input What year are you in school yearlik
  • 协变克隆函数的误解

    这个问题与最近的一个问题有关多态性不适用于相同数据类型 基类和继承类 的函数返回值 考虑代码 include
  • Python pytz时区转换返回与不同日期的时区偏移量不同的值

    我试图将美国 东部时区日期转换为 UTC 以上传到仅接受 UTC 时间但显示本地时区时间的网站 我有以下代码示例 其中当我转换最近的日期时 偏移量 5 00 或 4 00 没有问题 但是当我转换诸如 1900 01 01 之类的日期时 偏移
  • 表[ ] 输出基数

    The Table 命令通常返回一个与其迭代器具有相同基数的列表 Table i i 4 gt 1 2 3 4 很容易证明可以返回带有greater基数高于迭代器 Table Sequence ConstantArray 1 i i 2 g
  • 我可以在 Nodejs (ES7) 中解雇并忘记承诺吗?

    我想用 babel 运行这段代码 redisClientAsync delAsync key return await someOtherAsyncFunction 在异步函数中没有await第一行 这个可以吗 我还能怎样运行我不关心的事情