簡體   English   中英

如何在Javascript中順序調用Python連接:Node.js

[英]How to invoke Python connection sequentially in Javascript:Node.js

我正在嘗試開發node.js文件和Python代碼之間的連接,這是我使用zeroRPC成功實現的。 當我在執行node.js文件的每一行之后嘗試運行node.js文件時,問題出現了,最后它執行了'invoke'命令,該命令生成python連接並調用python函數並檢索值。例:

Node.js文件:

  var global_variable = 0;
  var json_object = "Some Json Object";
  console.log("1");
  NodeToPython(json_object);         //Calling the function

  function NodeToPython(json_object_local)
  {
     var send_json = json_object_local;
     var zerorpc = require("zerorpc");
     var client = new zerorpc.Client();
     client.connect("tcp://localhost:4242");

     console.log("2");
     client.invoke("receive", send_json, function(error, res, more) 
     {
       global_variable = JSON.parse(res);        // 'res' stores retrieved value from Python code
       console.log("3");
       client.close();
     }
     console.log("4");
 }
 console.log("5");

Python文件:

   import zerorpc, json
   class XYZ(object):

      def receive(self,response):                    // Called function 
          self.response=json.loads(response);
          print("Py");
          return json.dumps(self.response,encoding="utf-8",indent=2);

上述代碼的輸出如下: 1 2 4 5 Py 3

我希望輸出像逐行一樣順序,並且應該同時調用並從Python函數中獲取值,如下所示:1 2 Py 3 4 5

NodeJS傾向於繼續傳遞編程風格。 在客戶端上調用invoke時,您正在安排稍后運行的函數。 每當RPC調用成功或失敗時,將使用結果和可能的錯誤調用此函數。 從那時起,您可以繼續工作並安排更多功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM