我正在尝试做一些看似非常简单的事情,但我无法让它发挥作用。我已经通过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。
有什么想法吗?
答案 0 :(得分:1)
您必须使用回调来发送字符串。你不能只返回字符串。参见:
Edge.Func(@"
return function (data, callback) {
callback(null, 'hello world');
}
");
使用Edge时必须遵循此结构: