我很难从API获得响应并将其保存在变量中以便在Node.js中进一步使用它。也许我不知道语言是如何运作的。这是问题所在:
// Objective, get current temperature of New Delhi in celcius
var request = require('request');
var url = "http://api.openweathermap.org/data/2.5/weather?id=1261481&appid=#####&units=metric";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
curTemp = JSON.parse(body).main.temp; // curTemp holds the value we want
}
})
// but I want to use it here
console.log(curTemp);
我想将openweathermap(即body.main.temp
)的JSON响应存储到变量中。然后我将根据当前的温度撰写推文。
答案 0 :(得分:0)
请求是异步的。如果要以这种方式编写异步代码,则应使用返回Promise的API,例如: axios。然后,您可以使用async/await编写代码。
答案 1 :(得分:0)
在nodejs中,它是关于你需要稍后调用的回调函数。 所以你需要创建一个推文功能,并在你获得数据时调用它!
var request = require('request');
var url = "http://api.openweathermap.org/data/2.5/weather?id=1261481& appid=#####&units=metric";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
curTemp = JSON.parse(body).main.temp; // curTemp holds the value we want
tweet(curTemp)
}
})
// but I want to use it here
function tweet(data){
console.log(data)
}
考虑到这不是在异步
中编码的好方法