我正在尝试做一些看起来很简单的事情,但我无法让它发挥作用。我已经通过 nuget 安装了 Edge.js,并且想从 C# 控制台应用程序内部执行一段 Javascript。我的 public static void main
的代码如下:
Task.Run(async () => {
Console.WriteLine(
await Edge.Func("return function() { return 'hello world'; }")(null).Result
);
}).Wait();
我运行该应用程序,但它所做的只是挂起。
我已经尝试过这个:
Console.WriteLine(Edge.Func("return function() { return 'hello'; }")(null).Result);
相同的结果。这也是...
var task = Edge.Func("return function() { return 'hello'; }")(null);
await task;
Console.WriteLine(task.Result);
相同的结果。悬挂...
我还尝试了 RunSynchronously()
而不是等待,这给了我一个 InvalidOperationException
。
我遵循了文档here .
有什么想法吗?
最佳答案
您必须使用回调来发送字符串。您不能只返回字符串。请参阅:
Edge.Func(@"
return function (data, callback) {
callback(null, 'hello world');
}
");
使用 Edge 时必须遵循以下结构:
关于c# - 从 C# 控制台应用程序使用 Edge.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190524/