如何在Javascript:Node.js中顺序调用Python连接

如何在Javascript:Node.js中顺序调用Python连接,javascript,python,node.js,asynchronous,zerorpc,Javascript,Python,Node.js,Asynchronous,Zerorpc,我正在尝试开发node.js文件和Python代码之间的连接,这是我使用zeroRPC成功实现的。当我尝试运行node.js文件时,问题就出现了,在执行node.js文件的每一行之后,最后它会执行“invoke”命令,创建python连接并调用python函数并检索值。例如: Node.js文件: Python文件: 上述代码的输出如下: 1. 2. 4. 5. 派克 三, 我希望输出像逐行一样连续,并且应该同时调用Python函数并从中获取值,如下所示: 1. 2. 派克 3. 4. 5Nod

我正在尝试开发node.js文件和Python代码之间的连接,这是我使用zeroRPC成功实现的。当我尝试运行node.js文件时,问题就出现了,在执行node.js文件的每一行之后,最后它会执行“invoke”命令,创建python连接并调用python函数并检索值。例如:

Node.js文件:

Python文件:

上述代码的输出如下: 1. 2. 4. 5. 派克 三,

我希望输出像逐行一样连续,并且应该同时调用Python函数并从中获取值,如下所示: 1. 2. 派克 3. 4.
5

NodeJS支持延续传递式编程。在客户端上调用invoke时,您正在计划稍后运行的函数。无论何时RPC调用成功或失败,都将调用此函数,并显示结果和可能的错误。从那时起,您可以继续工作并安排更多功能。

NodeJS支持继续传递式编程。在客户端上调用invoke时,您正在计划稍后运行的函数。无论何时RPC调用成功或失败,都将调用此函数,并显示结果和可能的错误。从那时起,您可以继续工作并安排更多的功能。

感谢@bombela的输入,但我需要一种同步执行,我希望客户端上的调用立即运行,给出结果或可能的错误,而无需等待RPC成功或失败,并在稍后返回结果。我希望客户机上的调用在程序执行过程中运行。我们可以这样做吗?我的理解是nodejs使用ioloop并回调异步IO。除非nodejs给你一个等待某种承诺/未来的原语,否则你不能阻止线程。谢谢@bombela的输入,但我想要一种同步执行,我希望客户机上的invoke调用立即运行,给出结果或可能的错误,而不必等待RPC成功或失败,并在稍后返回结果。我希望客户机上的调用在程序执行过程中运行。我们可以这样做吗?我的理解是nodejs使用ioloop并回调异步IO。除非nodejs向您提供等待某种承诺/未来的原语,否则无法阻止线程。
  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");
   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);