Использование Edge.js из консольного приложения C#

Я пытаюсь сделать что-то, что кажется очень простым, но я не могу заставить его работать. Я установил Edge.js через nuget и хочу выполнить часть Javascript из консольного приложения C#. Код из моего 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,

Я следовал за документацией здесь.

Есть идеи?

1 ответ

Решение

Вы должны использовать обратный вызов для отправки строки. Вы не можете просто вернуть строку. Увидеть:

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

Вы должны следовать этой структуре при использовании Edge:

край

Другие вопросы по тегам