库/编译器在JavaScript

时间:2017-02-24 15:37:33

标签: javascript continuations

我正在寻找一个JavaScript库/编译器,允许开发人员使用在Scheme(或Rhino)中找到的延续。例如,这个库应该允许我们做类似的:

var kont;
function add(x,y) {
  return x +
        (function() {kont = new Continuation(); return y;})();
}

var executed = false;  //avoiding infinite recursion
show(add(5,1));        //show 6

if (!executed) {
  executed = true; 
  kont(20); // show 25 because the "y" binding is changed
}  

var result = cont(20); 

此代码背后的要点是:a)捕获和b)恢复JavaScript脚本的控制流(或执行)。为了恢复执行,我认为“捕获”应该是第一类值,如'kont = new Continuation()'

我搜索了库,但我只找到了jwacs(http://chumsley.org/jwacs/),但是这个项目已经停止了。可悲的是,Babel(https://babeljs.io/)不支持它:(。

任何帮助?

1 个答案:

答案 0 :(得分:1)

我认为你可能正在寻找的是发电机,这是由巴贝尔支持的: https://babeljs.io/learn-es2015/#ecmascript-2015-features-generators