如何在Rhino中调用continuations
How to call continuations in Rhino?
我正试图在Rhino中使用continuation,但我发现如何使用它的指令不一。我想在JS中创建和使用continuation。
https://developer.mozilla.org/en-US/docs/New_in_Rhino_1.7R2#Java_API.C2.A0for_Continuations
展示了如何从Java中以处理异常的形式使用它们(我认为这是错误的看待方式)。
http://wiki.apache.org/cocoon/RhinoWithContinuations
显示了一种现在已被弃用的使用它们的方式——不再允许显式创建延续。
有人能澄清一下吗?我现在可以使用1.7R2发行说明中的4种方法,仅通过Java端操作,用Rhino创建JS延续吗?
这已经有一段时间了,但我已经解决了,所以最好写下来。
Rhino中的Continuation处理仅限于Java端-您可以通过运行一个支持Continuations的函数来进入JS,并在抛出ContinuationPending异常或调用引发该异常的Java代码时从Javascript代码返回Java。您可以返回Java代码中的catch。
这段代码开始执行一个支持Continuations的函数——进入Javascript。
try {
openGlobalContext();
_globalContext.callFunctionWithContinuations(_func, _scope,
new Object[0]);
} catch (ContinuationPending pending) {
_cont = pending;
} finally {
closeGlobalContext();
}
这段Java代码,当被解释的Javascript调用时,会"离开"Javascript代码,到达引发延续异常的位置。也就是说,SomeMoreCode()
将运行。
public void createContinuation(){
try {
openGlobalContext();
ContinuationPending pending =
_globalContext.captureContinuation();
throw pending;
} finally {
closeGlobalContext();
}
SomeMoreCode();
}
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 如何在Rhino中调用continuations