我正在尝试使用edge.js和Visual Studio来实现以下功能:
class Program
{
public static async void Start()
{
var data = 9;
var func = Edge.Func(File.ReadAllText("do_some_math.js"));
Console.WriteLine(await func(data));
}
static void Main(string[] args)
{
Task.Run((Action)Start).Wait();
}
}do_some_math.js:
return function (data, callback) {
var math = require('mathjs');
// console.log("result: " + math.sqrt(data)); // works
callback(null, "result: " + math.sqrt(data));
}使用回调时无法获得结果,而使用console.log时,mathjs可以工作。在require('mathjs')之后,回调似乎不起作用。我还尝试了其他模块。这是怎么回事?
发布于 2016-02-25 03:25:11
非常感谢edge.js,他们提供了答案。我想这应该是一个关于C#的问题。他们回答说:
没有得到结果的原因是.NET应用程序在Node.js代码有机会完成之前就退出了。您可以通过将System.Threading.Sleep(5000);作为Main中的最后一条语句来验证它。
正确处理它的方法是将Start的签名修改为
public static async Task Start()然后在Main中用以下命令调用它:
Start().Wait();https://stackoverflow.com/questions/35584416
复制相似问题