【发布时间】:2019-09-02 10:09:18
【问题描述】:
简而言之.. 我无法访问我的新闻对象。在函数中调用时,它会以“未定义”的形式返回。
在我的 ngOnInit 中,我有两个订阅。 第一个返回一个新闻对象(在组件顶部定义为一个全局变量)。
第二次订阅返回一个路由参数,然后触发一个函数(navigateToArticle)。
现在...当第二个订阅触发“navigateToArticle”函数时,我希望该函数能够访问新闻对象。
但是,每次我尝试通过控制台记录新闻对象时,它都会返回为“未定义”。 现在我明白这与订阅是异步的有关。
所以我的问题是,我怎样才能确保新闻对象已被加载并可供“navigateToArticle”函数访问。 可能是某种检查以查看是否已加载新闻?
抱歉,我是 Angular 新手,所以请放轻松。我确定我错过了一些非常简单的东西。 为了清楚起见,我已将代码精简到最低限度。
public news: Newswire;
ngOnInit() {
this._newswireService.getSectors().subscribe((news: Newswire) => {
this.news = news;
}
this._activatedRoute.paramMap.subscribe(params => {
this.newsID = params.get('id');
this.navigateToArticle();
})
}
public navigateToArticle() {
console.log(this.news);
}
【问题讨论】:
标签: angular asynchronous undefined subscription