可以从阵容中观察到

时间:2016-03-09 11:54:32

标签: angular observable

我目前在使用Angular2和Observable对象时遇到问题。

我有一个调用服务的组件:一个链接到api和虚假服务的真实组件。

链接到API的服务运行良好,但是当我使用假的时,我想从Observable对象返回一个数组,但是我有这个错误:" Observable_1.Observable.fromArray不是一个函数"

这是我的代码:

组件:

this._raceService.list().subscribe(newRaces => { 

  this.races = newRaces;
}); 

真实服务:

list(){ return this._http.get('http://dev.backend.com/api.php', options).map(res => res.json()); }

虚假服务:

list() { return Observable.fromArray([{ name: 'London' }]); }

你能帮帮我吗?

干杯

7 个答案:

答案 0 :(得分:23)

应该是......

Rx.Observable.from(yourarray)

fromArray似乎已被弃用

答案 1 :(得分:11)

在RxJS第5版中删除了

Observable.fromArray(),使用from()

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
...
Observable.from([1, 2, 3, 4]);

答案 2 :(得分:7)

需要为RxJS 6更新答案,现在是

import {from} from 'rxjs';

const observable = from([ { a: 1, b: 2 } ]);

答案 3 :(得分:4)

我遇到了同样的问题,不得不在我的组件中添加这个import语句:

import 'rxjs/add/observable/fromArray';

我通过在我引用的fromArray文件中搜索Rx.js找到要添加的导入(请注意,因为项目中可能存在不同版本的文件):

System.register("rxjs/add/observable/fromArray", ["rxjs/Observable", "rxjs/observable/ArrayObservable"], true, function(require, exports, module) {
  // ...
});

答案 4 :(得分:4)

在我的代码中进行了一些研究后,我遇到了同样的问题...

我导入了:

import {Observable} from "rxjs/Observable";

而不是:

import {Observable} from "rxjs/Rx";

希望它可以帮助别人。

答案 5 :(得分:4)

我有同样的问题。我相信你可能会得到这个,因为fromArray已被弃用。

导入rxjs / Observable以防止导入您不需要的其他rxj部分

import { Observable } from 'rxjs/Observable';

fromArray已被弃用。而是使用

list() { return Observable.from([{ name: 'London' }]); }

答案 6 :(得分:0)

试试这个:
从'rxjs / observable / from'导入{from};
...
const promiseSource = from(new Promise(resolve => resolve('Hello World!'))); https://learnrxjs.io/operators/creation/from.html