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