首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何语言都有承诺语法吗?

任何语言都有承诺语法吗?
EN

Software Engineering用户
提问于 2015-10-16 05:19:07
回答 1查看 1.5K关注 0票数 1

我很高兴EcmaScript 6有内置于语言中的承诺,但是语法仍然很冗长:

代码语言:javascript
复制
new Promise(f).then(r => {
...
}).then(r2 => 
...
}).catch(...

我只是想知道是否有任何语言有语法上的承诺,所以结果看起来更像传统的命令式编程。也许假设是这样的:

代码语言:javascript
复制
fetch f {
get r
  ...
get r2
  ...
catch
  ...
}
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2015-10-16 08:52:26

是的,有几种这样的语言:

  • C#有async方法和await关键字。从技术上讲,实现某种句法模式的任何对象都可以await编辑,但意图是将这种语法用于异步编程,框架中唯一实现语法模式的对象是Task<T>对象,它们是未来/承诺(取决于您对“未来”和“承诺”的确切定义,它们可能是未来、承诺,两者都不是)。
  • Visual Basic.NET具有相同的语法和相同的语义
  • F#具有异步工作流,这是async/await的灵感所在。
  • 在具有宏的语言中,库可以实现自己的语法(在限制范围内),因此Scala、Scheme、Common、Clojure和其他Lisps中都有类似于内置语法的潜在库。
  • Python 3.5+有async / await
  • 下一个版本的ECMAScript很可能有async/await
  • 下一个版本的C++可能有也可能没有resumable/await
  • 最后但非常重要的是: Oz没有用于承诺的特殊语法,因为在Oz中,每个变量都是数据流变量,而每个值都是承诺!
票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/300014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档