【问题标题】:What is the term for "to asynchronously return"?“异步返回”的术语是什么?
【发布时间】:2019-11-28 06:04:43
【问题描述】:

许多编程语言都有异步函数的概念。异步函数的返回值不是所需的类型本身,而是最终将包含该值的 promise/future。

我正在撰写技术文章,我正在努力为异步返回值的行为想出一个简洁的术语。考虑以下同步函数:

function foo(): boolean { ... }

在这里,我会写 “如果 foo 返回 true, ...” 这是完全可以理解的。

现在考虑这个异步函数:

function bar(): Promise<boolean> { ... }

我可以这样写:“如果 bar 返回一个解析为 true 的承诺,...” 这在技术上是正确的,但相当尴尬,尤其是在重复使用时。

我可以写:“如果 bar 异步返回 true,...” 这更短,但我不太满意。对我来说,它强调“异步”,而不是“true”。

我可以这样写:“如果 bar 返回 true,...” 这很简短,但在技术上并不正确。

我想写类似:“如果 bar 产生 true, ...”,但是在可迭代的上下文中,动词 to yield 已经有了不同的含义(在至少在某些语言中)。

有没有一种简洁的方式来表达这个概念?

【问题讨论】:

    标签: promise future writing


    【解决方案1】:

    我认为yield(或它的同义词produce)完全没问题。从上下文中应该清楚地表明承诺的含义。如果不清楚,我会使用冗长且技术上精确的版本(返回一个满足的承诺)。

    另一个选项是bar() 解析为true,省略隐含的“调用返回的承诺”但使用bar() 而不是bar 来引用结果调用,而不是函数本身(这不是可以解决的承诺)。

    【讨论】:

    • 感谢您提供的所有绝佳选择!对于像我的示例这样的无参数函数,我喜欢您对 bar() 解析为 的建议。对于一般情况,我选择了 barproduces。很清楚,不能和协程混淆。
    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 2017-09-16
    • 2011-10-31
    • 2018-02-15
    • 2013-05-23
    • 2017-03-21
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多