从 request.get() 中保存正文
Saving body from request.get()
我想将 get 请求的正文保存在变量中(使用请求模块),但它未定义。
我已经搜索了解决方案,但目前没有任何效果。猜想问题是 request.get 是 calles async(到目前为止我没有异步函数的经验)。
const request = require("request")
...
let foo;
request.get(options,function(err,response,body){
foo = body;
});
console.log(foo);
预期:有效 get-request 的正文
实际:未定义
请求以异步方式完成,因此您的 console.log
发生在请求完成之前,因此 foo 仍未定义。
您必须将控制台日志放入回调正文中。此外,任何需要请求结果的计算都应该从回调中开始。
request.get(options,function(err,response,body){
console.log(body);
doSomethingAfterMyRequest(body)
});
此外,您应该处理您的错误,因为如果在您的请求期间发生错误,则 body 可能仍未定义。
request.get(options,function(err,response,body){
if (err) {
console.error(err)
return
}
console.log(body);
doSomethingAfterMyRequest(body)
});
我想将 get 请求的正文保存在变量中(使用请求模块),但它未定义。
我已经搜索了解决方案,但目前没有任何效果。猜想问题是 request.get 是 calles async(到目前为止我没有异步函数的经验)。
const request = require("request")
...
let foo;
request.get(options,function(err,response,body){
foo = body;
});
console.log(foo);
预期:有效 get-request 的正文 实际:未定义
请求以异步方式完成,因此您的 console.log
发生在请求完成之前,因此 foo 仍未定义。
您必须将控制台日志放入回调正文中。此外,任何需要请求结果的计算都应该从回调中开始。
request.get(options,function(err,response,body){
console.log(body);
doSomethingAfterMyRequest(body)
});
此外,您应该处理您的错误,因为如果在您的请求期间发生错误,则 body 可能仍未定义。
request.get(options,function(err,response,body){
if (err) {
console.error(err)
return
}
console.log(body);
doSomethingAfterMyRequest(body)
});