Я прочитал все о .then()
, и я понимаю, как это работает, и это на самом деле работает в моей текущей реализации и дает мне значение, которое я ищу.
async getDay() {
try {
let ref = this.db.getDay(this.dateFirebase);
ref.then(out => {
out.get().then(inner => {
console.log(inner.data());
})
})
} catch (err) {
console.log(err);
}
}
inner.data()
дает мне точный объект, с которым мне нужно работать, но я не могу использовать его где-либо еще в компоненте, не могу назначить его никаким свойствам компонента и не могу получить его вне этой области.
То, что я сейчас пытаюсь сделать, это получить inner.data()
, который является базовым c объектом, содержащим несколько полей, а затем отобразить его в шаблоне HTML и использовать его позже для различных других целей. Если я хочу получить объект изнутри, могу ли я сделать это только путем вызова .then()
каждый раз или есть способ сохранить его в локальной переменной?
Если я сделаю что-то вроде:
out.get().then(inner => {
console.log(inner.data());
this.day = inner.data();
console.log(this.day);
})
Я действительно могу видеть данные, затем я устанавливаю свойство компонента day
на данные, затем распечатываю свойство и вижу данные, записанные в нем. В другом методе у меня запущена функция setInterval, которая печатает свойство day
, которое непрерывно печатает undefined
, даже после того, как я успешно установил свойство.
Кажется, что неважно, что Да, значение внутри обещания нельзя использовать вне его, даже после того, как оно уже получено. Что я тут не так делаю?