返回主题和返回类型的错误为Observable

时间:2017-10-24 11:18:16

标签: angular rxjs

我是新角色试图学习角度概念, 我要做的是Observable作为返回类型和返回主题,其中IEvent是一个定义如下的接口,

export interface IEvent{
    id: number
    name:string 
    date: Date
    time: string
    price: number
    imageUrl:string
    location?:{
        address:string
        city:string
        country:string
    }
    onlineurl?:string
    sessions:ISession[]

}

在另一个课程中,我有类似的代码,

 const EVENTS : IEvent[] = [
        {
          id: 1,
          name: 'Angular Connect',
          date: new Date('9/26/2036'),
          time: '10:00 am',
          price: 599.99,
          imageUrl: '/app/assets/images/angularconnect-shield.png',
          location: {
            address: '1057 DT',
            city: 'London',
            country: 'England'
          },
          ......
     }

并且在同一个类中有一个方法,如下面的getEvents(),

@Injectable()
export class EventService{
    getEvents(): Observable<IEvent[]>{
      let subject = new Subject<IEvent[]>()
      setTimeout(() => { subject.next(EVENTS); subject.complete();},100)

      return subject
    }

在“return subject”语句中,获取编译器错误,Type Observable不能分配给Observable类型, 类型IEvent []不能分配给'R'。

我不明白为什么这个编译时错误,因为我知道Subject扩展了Observable所以返回主题对我有意义。 返回一个主题并返回类型为Observable,我做错了。

0 个答案:

没有答案