У меня проблема с неопределенным массивом, и я не могу понять, почему.Array undefined вне функции времени исполнения
Объявляю переменную ul, затем я получаю массив из хранилища и назначаю его ul, если я пытаюсь работать с ним внутри функции get, он работает, я могу делать все, что захочу, если я пытаюсь что-либо сделать с внешней функцией get он просто говорит, что он не определен.
function getUserList()
{
var ul;
chrome.storage.local.get({'users':[]}, function(result){ //get user array from storage
ul = result.users; //get users from result
console.log(ul); <-this works
});
console.log(ul); <- this does not
hideSubmissions(ul); <- or this
hideComments(ul); <- or this
};
getUserList();
Я могу переместить все, что использует ул в функцию получить, но я хотел бы знать, почему это необходимо, единственное, что я могу догадаться, что это как-то выходит за рамки, но я не» Посмотрите, как.
'console.log (ul);' выполняется до завершения 'local.get()'. Просто напишите их внутри. Это происходит потому, что вызовы асинхронны. Вы найдете больше ответов на асинхронный метод stackoverflow. Здесь вы можете начать с http://stackoverflow.com/questions/7779697/javascript-asynchronous-return-value-assignment-with-jquery – Dhiraj