访问请求会在全局对象中生成
Accessing request results in global object
如何
使请求结果作为对象的属性提供?目前,console.log(album.artistName) 返回未定义。但是,如果我控制台.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);
添加此项,然后重新启动应用,发出快速请求(您有 10 秒的时间):
setTimeout(function(){
console.log(album);
}, 10000);
但是你的问题没有多大意义。你总是需要一些东西来触发你的代码,当它触发时,你不会在全局范围内,尽管如此处所示,你会看到全局变量。
回答
了我自己的问题(我想)。这不是同步发生的。控制台.log在艺术家名称函数之前执行。
我想使用异步或类似的东西会解决。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 全局对象是属于哪个类的对象
- javascript无法重新定义函数内部的全局对象
- cordova:例外:财产'requestFileSystem'的[对象全局]不是函数
- Javascript,从静态函数中打印全局对象
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 向调用全局javascript函数的对象添加处理程序
- jQuery:如何使用文字对象方法中的方法来获取全局变量
- 警告 - 全局 THIS 对象的危险使用
- 在全局声音管理器对象上完成
- 将对象传递给指令不允许全局变量
- 在 Javascript 中创建全局变量时是否需要指定对象类型
- 将对象插入到全局数组
- Javascript外部对象全局
- 对象 [对象全局] 没有方法“附加事件”
- 如何使javascript对象全局可用
- 在 AngularJS 中使对象全局化
- 未捕获的类型错误: 对象 [对象全局] 没有方法
- Cheerio:SyntaxError:属性选择器格式不正确:对象全局
- 在复杂的AngularJS应用中使对象全局可访问和可操作的最好方法