Присвоение данных, извлеченных из базы данных Firestore, глобальной переменной Javascript - PullRequest
0 голосов
/ 23 апреля 2020

В приведенном ниже фрагменте кода я назначаю часть данных из указанного документа c (последний добавленный документ, где «userName» равно «coder») глобальной переменной с именем «video». Из-за того, что это асинхронный процесс, когда я консоль журнала "видео" в последней строке, ничего не выводится. Я хочу, чтобы данные выводились, когда я записываю консоль «видео» в последней строке. Я понимаю, почему это происходит, но я не смог это исправить. Я пытался найти различные решения, включающие обещания, и я не нашел решения, связанного с этим конкретным случаем. Я не хочу помещать весь остальной код в функцию then (). Я просто хочу, чтобы данные были доступны в глобальной переменной вне функции then (). Разве это невозможно выполнить sh без помещения всего остального моего кода в функцию then ()? Любая помощь будет отличной!

let video = "";
let promise = new Promise((resolve, reject) => {
    db.collection('groups').where('userName','==','coder').orderBy("timestamp", "desc").limit(1).get().then((snapshot) => {
        snapshot.docs.forEach(doc => {
            resolve(doc.data().videoLink);
        });
    });
});
promise.then((success) => {
    video = success;
});
console.log(video);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...