Пожалуйста.

о общий вопрос относительно двух крючков жизненного циклаOnInit а такжеOnDestroy, Как этостатья упоминает, я всегда предполагал, чтоOnInit являетсявсегда бежать доOnDestroy.

У меня есть случай, когда вngOnDestroy() Я запрещаю воспроизведение фоновой музыки. Этот звук загружен компонентомngOnInit()и потому чтоngOnDestroy() выполняется безngOnInit() будучи запущенным звуковой объектundefined.

Код

ngOnInit() {
    ...

    this.loadSounds();

    ...
}

ngOnDestroy() {
    if (AppSettings.SOUNDS_ENABLED) {
        this.soundService.getSound(Sound.MINI_GAME_BG_MUSIC).fade(0.2, 0, 1500);
    }
}

private loadSounds() {
    this.soundService.loadSound(Sound.MINI_GAME_BG_MUSIC, SoundPathURL.MINI_GAME_BG_MUSIC, true, 0);
}

На данный момент код не работает вngOnDestroy при попытке.fade() звук этоundefined, Конечно, я могу легко это исправить, проверив, что звук неundefined перед выполнением.fade() функция. Мое предположение было, что еслиngOnDestroy() это запуститьngOnInit() Должно быть, тоже побежал - наверное, я ошибся.

Теперь из-за этого случая я думаю, что в каждомngOnDestroy() в моем приложении я должен проверить, является ли используемый объектundefined перед выполнением каких-либо операций. Так, например, прежде чем отписаться от подписки, я должен проверить, является ли подпискаundefined, и так далее.

Правильно ли я так предполагаю?

Ответы на вопрос(1)

Ваш ответ на вопрос