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

标签 c# node.js edge.js

我正在尝试做一些看起来很简单的事情,但我无法让它发挥作用。我已经通过 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 时必须遵循以下结构:

Edge

关于c# - 从 C# 控制台应用程序使用 Edge.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190524/

相关文章:

C# 泛型协变

node.js - 在某些点与其他视频一起创建视频

asp.net-mvc - 将 Visual Studio MVC 项目的页面标记为 "async = true"

c# - 在 Node.js 中调用 C# 代码时出现意外结果

javascript - 通过 Node.js 将 Visual Studio 调试器附加到 Electron-Edge 应用程序

node.js - 如何强制阻止 Node.js 进程终止?

c# - C# "using"语句什么时候最有用?

c# - Visual Studio 2015 - 如何更改默认货币?

c# - 如何使用 asp.net mvc 在模态中插入 json 消息

javascript - nightwatch.js 在测试套件结束时暂停