observable.of在版本6.0.0-tactical-rc.1中找不到

时间:2018-04-11 08:50:24

标签: angular rxjs

我构建服务,应该在构建服务器API之前暂时返回某些数组的Observable。在将angular和其他软件包升级到6.0.0-rc.3版本之前,我使用了以下语法:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';


@Injectable()
export class GeocodesService {
   getPositions():Observable<any>{     
        return Observable.of({ })
   }
}

在6.0.0-rc.3,此语法看起来已弃用 尝试按照以下方式导入它(使用最新的角度):

 import 'rxjs/observable/of'

但是获得错误:

Module not found: Error: Can't resolve 'rxjs/observable/of'

如何导入&#34;&#34;可以用最新的rxjs来完成吗?

由于

4 个答案:

答案 0 :(得分:8)

最后找到了解决方案here

这个人(Tomas Trajan)使用以下语法:

import { Observable , of} from 'rxjs'

以后可以使用:

 getWidgets() {
    return of([]);
 }

答案 1 :(得分:6)

如果您想使用RxJS版本6的修补导入,您还需要安装rxjs-compat

这是一个单独的软件包,它向RxJS版本6添加了向后兼容性(使用RxJS版本5):

npm install rxjs-compat@6.0.0-tactical-rc.1

安装rxjs-compat后,您的修补导入应该可以正常工作。

有关详细信息,请参阅migration guide

答案 2 :(得分:1)

您必须更改导入和实例化。 Check out Damien's blog post

<强>铊; DR:

import { Observable, fromEvent, of } from 'rxjs';

const yourResult = Observable
    .create(of(yourObservable))
    .startWith(null)
    .map(x => x.someStringProperty.toLowerCase());

//subscribe to keyup event on input element
Observable
    .create(fromEvent(yourInputElement, 'keyup'))
    .debounceTime(5000)
    .distinctUntilChanged()
    .subscribe((event) => {
        yourEventHandler(event);
    });

答案 3 :(得分:0)

使用:

import {of} from 'rxjs';

Angular v6或6+中的抛出错误

使用如下:

import {of as useOf } from 'rxjs';

..................... .... ..............

getBooks():Observable<Book[]>{
return useOf(this.BOOKS);

}

错误已解决!