Javascript node.js-使结果全局可用(请求模块)
我正在尝试处理从请求返回的JSON结果 所以我需要在这个请求调用之外扩展它的范围。 为此,我用一个空字符串声明了Javascript node.js-使结果全局可用(请求模块),javascript,node.js,Javascript,Node.js,我正在尝试处理从请求返回的JSON结果 所以我需要在这个请求调用之外扩展它的范围。 为此,我用一个空字符串声明了data变量,并将结果分配给这个data,但它不打印结果 我怎样才能做到这一点 module.exports = function(callback) { var request = require("request") var url = "http://sheetsu.com/apis/94dc0db4" var data = ""; reque
data
变量,并将结果分配给这个data
,但它不打印结果
我怎样才能做到这一点
module.exports = function(callback) {
var request = require("request")
var url = "http://sheetsu.com/apis/94dc0db4"
var data = "";
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
callback(body)
data = body;
}
})
console.log(data);
}
这是典型的异步混淆:您的
控制台.log
调用将在http请求回调之前发生 这是典型的异步混淆:您的控制台.log
调用将在http请求回调之前发生 这是典型的异步混淆:您的控制台.log
调用将在http请求回调之前发生 这是典型的异步混淆:您的控制台.log
调用将在http请求回调之前发生 您的脚本按以下顺序执行:
console.log(数据)
request()
如果要打印
数据
,必须在请求回调函数中执行。该模块在执行异步任务时非常有用,特别是当您需要按特定顺序执行任务并使用此请求中的数据时 您的脚本按以下顺序执行:
console.log(数据)
request()
如果要打印
数据
,必须在请求回调函数中执行。该模块在执行异步任务时非常有用,特别是当您需要按特定顺序执行任务并使用此请求中的数据时 您的脚本按以下顺序执行:
console.log(数据)
request()
如果要打印
数据
,必须在请求回调函数中执行。该模块在执行异步任务时非常有用,特别是当您需要按特定顺序执行任务并使用此请求中的数据时 您的脚本按以下顺序执行:
console.log(数据)
request()
如果要打印
数据
,必须在请求回调函数中执行。该模块在执行异步任务时非常有用,特别是当您需要按特定顺序执行任务并使用此请求中的数据时 console.log(data)
实际上在回调之前运行,因此数据是空的。你的最终目标是什么?你在解决什么问题,需要像那样公开数据?我需要过滤数据并以不同的方式处理它们。所以,如果数据属于A类,我需要运行另一个函数。我想在这个模块中准备好这些数据,这样就可以在路由文件中使用了。console.log(data)
实际上在回调之前运行,因此数据是空的。你的最终目标是什么?你在解决什么问题,需要像那样公开数据?我需要过滤数据并以不同的方式处理它们。所以,如果数据属于A类,我需要运行另一个函数。我想在这个模块中准备好这些数据,这样就可以在路由文件中使用了。console.log(data)
实际上在回调之前运行,因此数据是空的。你的最终目标是什么?你在解决什么问题,需要像那样公开数据?我需要过滤数据并以不同的方式处理它们。所以,如果数据属于A类,我需要运行另一个函数。我想在这个模块中准备好这些数据,这样就可以在路由文件中使用了。console.log(data)
实际上在回调之前运行,因此数据是空的。你的最终目标是什么?你在解决什么问题,需要像那样公开数据?我需要过滤数据并以不同的方式处理它们。所以,如果数据属于A类,我需要运行另一个函数。我想在这个模块中准备好这些数据,以便可以在路由文件中使用。那么,在这种情况下,我如何使这些数据包含结果并使其在请求调用之外可用?它在请求调用之外可用,但在调用console.log
时不可用。正如Marcos所解释的,您的请求回调将在console.log
调用之后执行。如果不了解执行顺序,应该在谷歌上搜索“异步javascript”。接下来,有许多方法可以使数据
在请求之外可用,第一个也是显而易见的方法是使用实际的回调
函数。另一种方法是使用So,在这种情况下,如何使此数据包含结果并使其在请求调用外部可用?它在请求调用外部可用,但在调用console.log
时不可用。正如Marcos所解释的,您的请求回调将在console.log
调用之后执行。如果不了解执行顺序,应该在谷歌上搜索“异步javascript”。接下来,有许多方法可以使数据
在请求之外可用,第一个也是显而易见的方法是使用实际的回调
函数。另一种方法是使用So,在这种情况下,如何使此数据包含结果并使其在请求调用外部可用?它在请求调用外部可用,但在调用console.log
时不可用。正如Marcos所解释的,您的请求回调将在console.log
调用之后执行。如果不了解执行顺序,应该在谷歌上搜索“异步javascript”。接下来,您有许多方法可以在请求之外使用数据,第一个也是显而易见的方法是使用实际的cal