【发布时间】:2016-04-11 11:58:26
【问题描述】:
我正在编写一个节点模块作为 Python 模块的包装器(以使该模块可从 node.js 获得)。该模块可作为独立脚本或 HTTP 服务器使用。
当从该脚本/服务器获取数据时,我的函数需要返回一个值,并且不能在回调函数中做某事。至少我是这么理解的。
(一个可能的客户端是 gitbook-plugin,当它遇到“块”时,它必须调用 plugin->my-client-module 并将其返回值插入到生成的 HTML 文档中。)
所以要么我看到了一些错误,因为我对 Node.js(来自 Python)太陌生,要么我需要一种方法来使 HTTP 请求同步。
使用独立脚本,我可以使用 ChildProcess.spawnSync 轻松完成,但不是在 HTTP 请求中。
嗯,我知道人们总是建议在 Node 中异步做事,所以我也很高兴能指出如何以这种方式实现我的目标。如前所述,我希望我的模块的客户端向我传递一些数据,将其传递以调用脚本或在服务器上执行 POST 请求并将处理后的数据返回给客户端。
【问题讨论】:
-
听起来您在需要模块时尝试获取数据,而不是让模块为您提供可以调用初始化函数然后返回承诺的对象。
标签: javascript node.js asynchronous http-post synchronous