1. 程式人生 > >好厲害的庫edge js 實現C 與node js互操作

好厲害的庫edge js 實現C 與node js互操作

封裝 task net div 特性 tel write null ofo

最近在網上閑逛,又發現個好東西,edge.js
這個庫可以讓node.js 調用 C# 的代碼,還可以讓 C# 調用node.js 的代碼,看到這裏,只問你服不服?反正我是很驚嘆了……
不過edge.js也有個限制,必須是.net 4.5 以上才可以用,因為使用了一些.net 新特性Task,asyn,await,這些特性正好對應node.js的異步回調

來自edge.js官網的例子,node.js 調用 C#

var edge = require(‘edge‘);

var hello = edge.func(function () {/*
    async (input) =>
{ return ".NET welcomes " + input.ToString(); } */}); hello(‘Node.js‘, function (error, result) { if (error) throw error; console.log(result); });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

上面在javascript 的函數體內部執行了一段C#代碼,是不很神奇?

接著是官網的另一個例子,在C#中調用node.js

using EdgeJs;

public static async void
Start() { var func = Edge.Func(@" return function (data, cb) { cb(null, ‘Node.js ‘ + process.version + ‘ welcomes ‘ + data); } "); Console.WriteLine(await func(".NET")); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

唯一別扭的是這一點,NodeJS裏無法直接調用.NET的方法,必須用封裝成Func<object,Task<object>>

異步回調方式

看別人寫的這一篇展示的更加完美
Edge實現NodeJS與.NET互操作(包括UI界面示例)

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

好厲害的庫edge js 實現C 與node js互操作