2016-02-06 3 views
0

Как я могу сделать результаты запроса доступными как свойство объекта? На данный момент console.log (album.artistName) возвращает undefined. Однако, если I 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

Добавьте это и перезапустить приложение, сделать быстрый запрос (у вас есть 10 секунд):

setTimeout(function(){ 
    console.log(album); 
}, 10000); 

Но ваш вопрос не имеет особого смысла. Вам всегда понадобится что-то, чтобы вызвать ваш код, и когда это произойдет, вы не будете в глобальной области, хотя, как показано здесь, вы увидите глобальные переменные.

0

Ответил на мой вопрос (я думаю). Это не происходит синхронно. console.log выполняется перед функцией artistName.

Я бы предположил, что использование async или что-то подобное разрешит.

Смежные вопросы