我正在尝试在Node.js中使用node-rest-client REST客户端。

当我使用以下代码时,它返回null,但控制台在此之后打印响应。如何使用REST客户端进行同步呼叫?

var postRequest = function(url, args) {
  var client = new Client();
  var responseData = {};

  client.post(url, args, function(data, response) {
    responseData = data;
    console.log(responseData);
  });

  return responseData;
};

最佳答案

该模块在内部使用Node.js的本机HTTP方法,因此它们不是同步的。您不能将异步函数转换为同步函数,因此需要使用回调:

var postRequest = function(url, args, callback) {
  var client = new Client();
  var responseData = {};
  client.post(url, args, function(data, response) {
    responseData = data;
    callback(responseData);
  });
};


然后,您可以像下面这样调用函数:

postRequest(url, args, function(response) {
  // response
});

关于javascript - Node.js:REST客户端在返回值之前返回该值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20535689/

10-09 20:19