【发布时间】:2015-05-07 05:04:31
【问题描述】:
如果这是一个愚蠢的问题,我深表歉意,但我是 Javascript 新手,Node.js 真的让我很头疼,因为它是异步的。
我的目标是从 API 查询 JSON 对象并能够使用它。我试图寻找关于我应该做什么的问题和答案,但对我来说没有任何意义,所以我希望通过看到正确的代码来学习。
var request = require('request');
var url = 'url here';
var temp;
var done = false;
request(url, function (error, response, body) {
if (!error) {
temp = body;
done = true;
console.log(temp);
} else {
console.log(error);
}
});
if (done){
console.log(temp);
}
有人可以指导我通过正确的方法来重组我的代码吗?
【问题讨论】:
-
见:stackoverflow.com/questions/17460556/…。尤其是答案底部的部分。
-
每天会多次询问此问题的变体。这个问题的根源在于你需要真正了解什么是异步响应以及如何使用它。首先要了解的是,您的异步回调会在稍后的某个时间调用,但是在您的函数运行之后的代码行会在异步响应运行之前立即运行。因此,您只能在回调中使用异步响应。将所有需要使用响应的代码放在回调中。
标签: javascript json node.js asynchronous