【问题标题】:Node.js: REST client returns the value before it's returnedNode.js:REST 客户端在返回值之前返回值
【发布时间】:2014-09-01 09:40:12
【问题描述】:

我正在尝试在 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;
};

【问题讨论】:

    标签: javascript node.js http asynchronous


    【解决方案1】:

    模块内部使用 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
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2020-05-15
      • 2015-02-19
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      相关资源
      最近更新 更多