1

我正在使用 Angular4,目前开始探索 Angular4 的服务。我在我的 dataServices 类中做的一切都是正确的,但我仍然在observer.next(1);\的参数中遇到这个错误

请告诉我我错在哪里。

错误:

Argument of type '1' is not assignable to parameter of type 'number[]'

数据服务.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;
    }
}
4

2 回答 2

3

this.data 是一个数字数组,而不是单个数字。将您的值推送到 this.data 。

于 2018-03-21T19:54:45.653 回答
2

您为以下类型编写了此类型data

data: Observable<Array<number>>;

但是你试图传递一个number,而不是一个数字数组。所以你可以改变类型data

data: Observable<number>;
于 2018-03-21T19:55:42.730 回答