如何将请求结果作为对象的属性提供?目前,console.log(album.artistName)返回undefined。但是,如果我在请求函数中使用console.log album.name,控制台将返回相册名称。
我希望能够创建自己的对象,其中包含我需要的数据点,以便我可以普遍访问。
var request = require('request');
var album = {};
album.max = 'Max';
album.artistName = artistName();
function artistName(){
request('https://api.spotify.com/v1/albums/4INyHv55ddXe0A2TNvKezm', function(err, response){
if(!err && response.statusCode == 200){
var data = JSON.parse(response.body);
album.name = data.artists[0].name;
}
});
}
console.log(album);
答案 0 :(得分:0)
添加此项,然后重新启动您的应用,发出快速请求(您有10秒钟):
setTimeout(function(){
console.log(album);
}, 10000);
但你的问题没有多大意义。你总是需要一些东西来触发你的代码,当它发生时,你不会在全局范围内,尽管如此所示,你会看到全局变量。
答案 1 :(得分:0)
回答了我自己的问题(我认为)。这不是同步发生的。 console.log在artistName函数之前执行。
我想象使用异步或类似的东西会解决。