TN.*_*TN. 22 javascript async-await
是否有任何尝试将C#5.0中的async/await功能引入任何可以编译为JavaScript的语言(例如CoffeScript)?(因此它可以在Web浏览器或node.js.中使用)
use*_*328 16
Async是JavaScript和声的功能列表.到目前为止,有许多尝试在浏览器或节点中提供此类功能,但它们似乎都没有与和谐提议兼容:
Bre*_*tin 14
async/await似乎即将进入ECMAScript 7.该提案于2014年1月被纳入规范流程的第1阶段.
好消息是Googles traceur编译器已经支持它,所以你今天就可以开始使用它了.
示例语法:
async function asyncValue(value) {
await timeout(50);
return value;
}
Run Code Online (Sandbox Code Playgroud)
async/await也在TypeScript路线图上.
我不熟悉C#,但听起来你正在寻找的是某种延续,所以不是写作
fs.readFile 'foo.txt', (err, data) ->
myFunc data
Run Code Online (Sandbox Code Playgroud)
你可以改为写点东西
data = &fs.readFile 'foo.txt' # not a real syntax
myFunc data
Run Code Online (Sandbox Code Playgroud)
这不是JavaScript或CoffeeScript提供的.但是,还有其他几个编译器可以执行以下操作:
另请参阅:在CoffeeScript wiki上编译为JavaScript的语言列表.
小智 5
是的,你甚至不需要编译它,因为它只是一个简单的JavaScript库.
我的一个名为sharpnr.js的项目旨在扩展具有C#(和.NET当然)的强大功能的JavaScript,如await/async或LINQ.
该库目前处于测试阶段,但它很稳定,几乎支持所有语句(例如loop,switch,if),并且与现有库(如jQuery)配合良好.
await/async语法几乎与C#版本完全相同:
var getAsync = async(function(url) {
var result = await; $.get(url);
$("#test").html(result);
});
getAsync("http://www.sharpnrjs.com");
Run Code Online (Sandbox Code Playgroud)
关于jsfiddle的工作示例.
您可以从github下载该库.
| 归档时间: |
|
| 查看次数: |
12695 次 |
| 最近记录: |