2015-07-02 81 views
1

我試圖做一些看起來很簡單的事情,但我無法讓它工作。我已經通過nuget安裝了Edge.js,我想從C#控制檯應用程序中執行一段JavaScript。從我public static void main的代碼如下:從C#控制檯應用程序中使用Edge.js

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

任何想法?

回答

1

您必須使用回調來發送字符串。你不能只返回字符串。請參閱:

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

你必須使用邊緣時遵循這種結構:

Edge

+1

謝謝你,排序對我來說。 – garryp