1

我想在控制台应用程序的 c# 平台中运行一些 JavaScript 文件,例如:

using System;
using System.Threading.Tasks;
using EdgeJs;

class Program
{
    public static async Task Start()
    {
        var func = Edge.Func(@"
            return function (data, callback) {
                var hello = function() { 
                      // some javascript syntax error ... 
                      return ' Hello ' + data;
                    };
                callback(null, hello());
             }
         ");

        Console.WriteLine(await func("Word!"));
    }

    static void Main(string[] args)
    {
        Start().Wait();
    }
}

但是当我的 js 函数出现错误时,它不会给我任何错误文本或提示来检测我的错误。

那么在运行 JS 函数时如何在 c# 中的 Edgejs 中获取错误文本?

4

1 回答 1

1

一种方法可以是:

 using System;
 using System.Threading.Tasks;
 using EdgeJs;

  class Program
  {
    public static async Task Start()
   {
     var func = Edge.Func(@"
     return function (data, callback) {
     var error = '';
     var hello = function() { 
     try{
             some javascript syntax error .... 
             return 'Hello ' + data;
     }catch(e){ error = e;}
             };
     var result = hello();
     if(error == '')
     {
          callback(null, result );
     } else { 
               callback(null, error);
            }
     }
    ");

     Console.WriteLine(await func("Word!"));
   }

  static void Main(string[] args)
  {
      Start().Wait();
  }
}

我的意思是在我的 js 代码中使用 try catch,但如果可以在不更改 js 代码的情况下以其他方式使用,那就太好了。

于 2016-05-10T17:18:19.310 回答