我正在寻找一个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/)不支持它:(。

有什么帮助吗?

最佳答案

我认为您可能正在寻找的发电机是babel支持的发电机:
https://babeljs.io/learn-es2015/#ecmascript-2015-features-generators

09-16 16:26