从 C# 控制台应用程序使用 Edge.js

Using Edge.js from a C# console application

我正在尝试做一些看起来很简单的事情,但我无法让它工作。我已经通过 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

有什么想法吗?

您必须使用回调来发送字符串。您不能只 return 字符串。参见:

Edge.Func(@"
        return function (data, callback) {
            callback(null, 'hello world');
        }
    ");

使用 Edge 时必须遵循以下结构: