行为主体不更新

behavior subject doesnt udate

我正在尝试使用 LanguageService 中的默认值在 BahaviorSubject 中设置我的语言。我的服务看起来像 thi

import {Injectable} from '@angular/core';
import * as globals from '../../../environments/globals';
import {BehaviorSubject} from 'rxjs';

@Injectable()
export class LanguageService {
    languages = globals.languages;

    language = new BehaviorSubject<string>(this.languages.polish.code);

    setLanguage(code: string) {
        console.log(code)
        this.language.next(code);
    }

    getLanguage() {
        return this.language.asObservable();
    }
}

它由 SharedModule 提供,然后由我拥有的每个组件导入。 问题是使用 setlangueage 我可以看到正确的代码 Im 设置,但 getLanguage 总是 returns mi 默认值。我以前从未遇到过 BehaviorSubject 的问题,所以我不确定是什么原因造成的。

我已经实现了

this.languageSubscription = this.languageService.getLanguage().subscribe((language: string) => {
            console.log(language);
        })

在我的一个组件中查看它是否正常,但是......它不是。有什么线索吗?

我认为问题与路由有关,当我更改为 AsyncSubject od 正常 Subject 然后在更改屏幕时我在 getLanguage() 中什么也没有,就像它从未被调用过一样

从任何 providers 数组中删除服务并将装饰器更改为:

@Injectable({providedIn: 'root'})