Подождите, пока Angular Observable не станет "Complete" - PullRequest
0 голосов
/ 16 ноября 2018

Огляделся и ничего, что я нашел, вполне подходит моей проблеме Как я могу сделать остальную часть кода .ts, чтобы дождаться окончания наблюдаемого.

Я новичок в Angular и все еще пытаюсь понять, как работают Observables. Я знаком с использованием их в моих шаблонах с '| async ', но их использование для получения данных в моих файлах .ts не работает так, как я ожидал.

Я хочу, чтобы все ждали, пока Наблюдение завершится, прежде чем двигаться дальше. Моя цель здесь - установить переменную класса «кратко» на основе ответа моей наблюдаемой.

Я собираюсь использовать эту переменную

К сожалению, переменная инструктажа никогда не меняется. Я уверен, что это фундаментальное недоразумение с моей стороны.

Мой класс сводится к:

export class briefValidatorComponent implements OnInit{
    briefed: boolean = false;
    output: customObjectTwo;

    @Input() inputOne: customObject;
    @Input() inputTwo: customObject;

    ngOnIt(){
        this.userService
            .getBriefingReflectedForUser()
            .subscribe(response => {
                this.briefed = response.briefingInCasport; //Returns true
                console.log(this.briefed); //Prints true
            });

        console.log(this.briefed); //Prints false

        functionOne(objectOne, objectTwo);
    }

    functionOne(objectOne, objectTwo){
        //does some work with the briefed variable to 
        //determine what the output will be
}

РЕДАКТИРОВАТЬ: Извините, должен был быть более полным с моим намерением. Остальная часть кода еще не написана, потому что я попал в тупик.

У меня будет другая функция, которая оценивает некоторые входные данные, чтобы определить, какой будет вывод. Затем я буду ссылаться на этот вывод в моей dom, чтобы изменить то, что там будет показано.

Я изучил выполнение всей работы в методе подписки, но тогда я не смог бы изменить вывод для ссылки на dom.

...