我目前在使用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' }]); }
你能帮帮我吗?
干杯
答案 0 :(得分:23)
应该是......
Rx.Observable.from(yourarray)
fromArray似乎已被弃用
答案 1 :(得分:11)
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