Promises/A+规范很好地实现了promises,但它使用了Javascript的弱类型。 Promise的规范是否设计了具有强大静态类型的语言,例如C#?
答案 0 :(得分:6)
许多语言都有承诺,它们是并发的有用和基本构建块。很多人都将承诺作为基类库的一部分内置。
Task<T>
Future[T]
Future
。 (虽然不是静态输入)。IO a
。promise
。 Future<T>
。 std::future<T>
。 大多数其他语言在userland中都有占主导地位的实现,例如Swift和Objective-C的Promise和PromiseKit。
我可以继续,但模式实际上无处不在。大多数语言都在其语言规范中指定。 JavaScript在承诺中有多少实现以及规范告诉他们如何彼此互操作这一事实是独一无二的。
它们与承诺并不完全相同,但它们都捕捉到了未来价值的相同想法。有些更受限制(没有monadic链接)但大多数不是。