При выводе в консоль массива он пустой, но нет (массив Шрёдингера)
При обращении к firebase получаю response и заношу данные во внешний массив который был задан до этого, и все данные заносятся, но в консоле показывается [ ], но при открытии там есть все данные. Также при ображении по ключу выдает underfined.
Консоль браузера:
Работаю с React.js и firebase realtime database.
Вопрос: Что вообще происходит, как исправить это?
Ответы (1 шт):
Автор решения: Konstantin Modin
→ Ссылка
Запрос данных из БД это асинхронный код. console.log - это синхронный код. В момент выполнения console.log данные ещё не получены. А когда вы смотрит данные в консоли они уже там. Можно поставить console.log после цикла for, внутри коллбека.
Вот пример который иллюстрирует данное поведение:
const result = [];
setTimeout(() => {
result.push("value");
}, 0);
console.log(result);
console.log(result[0]);
//-------------------------------------
const result2 = [];
setTimeout(() => {
result2.push("value");
console.log(result2);
console.log(result2[0]);
}, 0);


