我在 Node.js 应用程序中有以下代码:
var curlStatus = "";
var curlBody = "";
var curlHeaders = "";
var curlInfo = curl.on('end', function( statusCode, body, headers){
curlStatus = statusCode;
curlBody = body;
curlHeaders = headers;
//this.close();
return {status: curlStatus, body: curlBody, headers: curlHeaders};
});
curl.on('error', function(){
console.log("CURL ERROR");
});
curl.perform();
在 return {status:curlStatus, body:curlBody, headers:curlHeaders};
上放置断点显示 body
、headers
和 statusCode
已成功填充。但是,在 curl.perform()
之后放置断点会显示 curlStatus
、curlBody
和 curlHeaders
变量仍然是空字符串。如何将信息传递给父函数?
最佳答案
欢迎来到 JavaScript 和异步问题。
当您执行 curl.perform();
时,请求将开始但尚未完成,这就是为什么您的变量 curlX
尚未填充。
请求完成后,将调用您使用 url.on('end', function...
定义的回调,并且您将填充这些变量。
关于javascript - 从 node-libcurl 获取状态、正文和 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36918733/