我正在尝试在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;
};
答案 0 :(得分:6)
模块内部使用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
});