Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有Javascript同步接口的异步操作_Javascript_Node.js_V8_Eventlet - Fatal编程技术网

具有Javascript同步接口的异步操作

具有Javascript同步接口的异步操作,javascript,node.js,v8,eventlet,Javascript,Node.js,V8,Eventlet,所以我最近听说了很多关于node.js的事情。支持者似乎把它吹捧为基督的第二次降临。这激起了我的兴趣,我决定好好读一读 我遇到了多个具有基准数字的源,它显然在处理大量并发请求方面做得非常好。但是“回调”式的代码编写方式让我觉得非常“不自然”。一点研究让我想到了Eventlet,它让我在编写非常类似于同步的代码时执行异步操作(从而提高了我的工作效率) 但是Node.js似乎比Eventlet强大得多(http://codescience.wordpress.com/2011/09/05/non-b

所以我最近听说了很多关于node.js的事情。支持者似乎把它吹捧为基督的第二次降临。这激起了我的兴趣,我决定好好读一读

我遇到了多个具有基准数字的源,它显然在处理大量并发请求方面做得非常好。但是“回调”式的代码编写方式让我觉得非常“不自然”。一点研究让我想到了Eventlet,它让我在编写非常类似于同步的代码时执行异步操作(从而提高了我的工作效率)


但是Node.js似乎比Eventlet强大得多(http://codescience.wordpress.com/2011/09/05/non-blocking-io-node-js-and-pythons-eventlet). 我想这是因为V8 JS引擎。是否有Java/Javascript产品允许我在编写同步代码时执行异步操作,因此,给了我两全其美的优势—开发人员的生产力以及JVM/V8的性能?

Node.js支持可以支持异步等待语法,允许您使用同步代码运行异步操作

看看这个:


有几个项目旨在将这种风格引入Node.js,fork是一个例子(但需要您编写CoffeeScript)。另一个是


就我个人而言,我一直在试验IcedCoffeeScript(因为我已经在使用CoffeeScript),它似乎工作得很好(请参见我的),但调试CoffeeScript有点困难,尽管下一版本CoffeeScript应该有源代码映射支持,希望这会使这更容易。

您应该查看我的一个项目,它被称为sharpnr.js。 这也使用了await异步语法,但它是一个简单的JavaScript库,适用于所有浏览器

该库目前处于测试阶段,但它是稳定的,支持几乎所有语句(例如循环、开关、if),并且与现有库(如jQuery)配合良好

语法与C版本几乎相同:

工作实例


您可以从下载库。

值得注意的是,Node.js的官方版本不支持此功能;这是项目的一个分支,它实现了建议的更改,并且非常简单。谢谢,很高兴知道!还有其他产品吗?不必是node.js插件/扩展。在JVM/V8上运行的任何东西。
var getAsync = async(function(url) {
  var result = await; $.get(url);
  $("#test").html(result);
});
getAsync("http://www.sharpnrjs.com");