【发布时间】:2020-02-12 19:55:44
【问题描述】:
我正在使用 Ionic News App。我在从服务文件中获取响应时遇到了一个问题。
home.page.ts
getNews(): void {
this.loading = true;
this.language = localStorage.language;
this.checkForToken();
var userId = this.loggedInUser;
this._newsService.getAllNews().subscribe(
(res: any) => {
console.log("all news==========>", res)
this.loadNewsToPage(res, userId);
},
(err) => {
this.loading = false;
this.error = err;
});
}
news.service.ts
getAllNews(){
if(this.network.type == 'none' ){
console.log(JSON.parse(localStorage.getItem("newsArray")));
this.newsArray = JSON.parse(localStorage.getItem("newsArray"))
return this.newsArray;
}else{
return this.http.get(config.baseApiUrl + 'news?isApproved=APPROVED').pipe(
map((res) => {
this.newsArray = res['data'];
localStorage.setItem('newsArray',JSON.stringify(this.newsArray))
return this.newsArray;
}),
catchError(this.handleError));
}
}
现在的问题是当网络为“无”时,它会在服务文件中进入“如果”条件,并从本地存储返回响应。但是当网络没有时,它会给我以下错误。
ERROR TypeError: this._newsService.getAllNews(...).subscribe 不是 功能
当它进入 else 条件或存在网络时,它可以正常工作。为什么会这样?
【问题讨论】:
-
我认为问题出在您的 getAllNews() 上,其中如果网络不存在的情况下,您将直接返回数组,而在其他情况下,它会返回 observable,因此这是您需要解决的问题。跨度>
-
您可以编辑我的代码并将其作为答案发布吗?如果有帮助,我会接受。
标签: javascript ionic-framework service angular7 ionic4