Javascript 有强类型语言的promise规范吗?

Javascript 有强类型语言的promise规范吗?,javascript,promise,specifications,strong-typing,Javascript,Promise,Specifications,Strong Typing,该规范非常适合实现承诺,但它大量使用Javascript的弱类型。是否有一个承诺规范,它是用具有强静态类型的语言设计的,例如C#?许多语言都有承诺,它们是并发性的一个有用的基本构建块。它们中的许多都有内置的承诺,作为其基类库的一部分 C#s 斯卡拉氏 Java8的 Python的。(但不是静态类型) 哈斯克尔的 克罗朱尔的 达特的 C++的 大多数其他语言在userland中都有主要的实现,例如Swift和Objective-C以及PromiseKit 我可以继续说下去,但这种模式确实无处不

该规范非常适合实现承诺,但它大量使用Javascript的弱类型。是否有一个承诺规范,它是用具有强静态类型的语言设计的,例如C#?

许多语言都有承诺,它们是并发性的一个有用的基本构建块。它们中的许多都有内置的承诺,作为其基类库的一部分

  • C#s
  • 斯卡拉氏
  • Java8的
  • Python的。(但不是静态类型)
  • 哈斯克尔的
  • 克罗朱尔的
  • 达特的
  • C++的
大多数其他语言在userland中都有主要的实现,例如Swift和Objective-C以及PromiseKit

我可以继续说下去,但这种模式确实无处不在。大多数语言都在其语言规范中指定了它。JavaScript在承诺的实现数量上是独一无二的,而且规范告诉他们如何相互操作


它们与承诺并不完全相同,但它们都体现了对未来价值的相同想法。有些更为有限(没有一元链接),但大多数则不然。

强类型语言中没有直接类比。然而,主要目标——处理异步操作的扁平化代码是以这样或那样的方式实现的,是什么让你认为承诺是弱/强类型依赖的?@奇怪的是,从链中的任何级别,你都可以返回一个值(这将提供链中的下一个处理程序)或返回一个承诺(在下一个处理程序之前将粘入链条)。在强类型语言中,如何返回任意对象或承诺?@KirillSlatin创建一个抽象基类,比如说
Result
,然后传递它的子类。伙计,这是静态编程的ABC。@奇怪的是,在C#和Java中都有一个抽象基类。它被命名为“object”。使用它是一个非常糟糕的主意,因为它会抛出大量类型安全检查-例如,尝试使用.NET 1.0非泛型集合。这是糟糕的静态编程的ABC。注意:我假设您谈论的是静态类型(而不是“强”)键入,否则您不需要A+,请注意,这些幻想承诺在设计上是同步的,甚至不缓存它们的值(更像是
IO A
)@Bergi:幻想承诺指的是这个讨论:以及缓慢(在某些情况下非常缓慢)promise A+规范作者/社区认识到promises是一个单子。从技术上讲,像Haskell这样的强类型函数(非OO)语言使用单子,这正是半开玩笑的幻想promises试图暗示的。@slebetman认识到“promises本质上是单子”是自80年代以来就为人所知的事情。人们只是(有些人仍然没有)发现这种特殊的认识有意义或重要:)(当然,这些不是JS的承诺)