我正在尝试从服务订阅一个observable,它构建没有错误,但是我收到了错误" this.service.getBanners(...)。subscribe不是一个函数"在浏览器中查看时。
服务:
delegate :company, to: :employee
组件:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
@Injectable()
export class BannerService {
banners: any = ['1','2','3'];
constructor(
) {}
getBanners(): Observable<any[]> {
return this.banners;
}
setBanners(banners: any[]): void {
this.banners = banners;
}
}
任何想法我做错了什么?
答案 0 :(得分:17)
你应该返回一个observable,而不是你要返回一个数组,
getBanners(): Observable<any[]> {
return Observable.of(this.banners);
}
答案 1 :(得分:7)
要解决的一些问题。
您声明您的函数getBanners()返回一个Observable,但您返回一个数组。所以将你的return语句改为
return Observable.from(this.banners);
您还需要添加以下内容:
import 'rxjs/add/observable/from';
这是不好的做法,将整个rxjs库包含在您的代码中:
import { Observable } from 'rxjs';
仅导入您需要的内容。用
替换上面的内容import { Observable } from 'rxjs/Observable';