我正在使用Angular4,目前开始探索Angular4服务。我已经在我的dataServices类中做了一切,但我仍然在observer.next(1);
\
请告诉我哪里错了。
错误:
Argument of type '1' is not assignable to parameter of type 'number[]'
data.service.ts:
import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; @Injectable() export class DataService{ data: Observable<Array<number>>; constructor(){ } getData(){ this.data = new Observable(observer =>{ setTimeout(() =>{ observer.next(1); }, 1000); setTimeout(() =>{ observer.next(2); }, 2000); setTimeout(() =>{ observer.next(3); }, 3000); setTimeout(() =>{ observer.next('Hello'); }, 4000); setTimeout(() =>{ observer.complete(); }, 5000); }); return this.data; } }
答案 0 :(得分:3)
this.data是一个数字数组,而不是一个数字。将您的值推送到this.data。
答案 1 :(得分:2)
您为data
写了这种类型:
data: Observable<Array<number>>;
但是你试图传递number
,而不是数组。因此,您只需更改data
的类型:
data: Observable<number>;