类型' 1'的论点不能分配给' number []'类型的参数。

时间:2018-03-21 19:52:29

标签: angular angular-services angular-service-worker

我正在使用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;
    }
}

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您为data写了这种类型:

data: Observable<Array<number>>;

但是你试图传递number,而不是数组。因此,您只需更改data的类型:

data: Observable<number>;