未处理的Promise拒绝:Rx_1.Subject不是构造函数;区域:;任务:Promise.then;值:TypeError:Rx_1.Subject不是构造函数
我有一个angular2应用程序,它使用systemjs来映射/加载。未处理的Promise拒绝:Rx_1.Subject不是构造函数;区域:;任务:Promise.then;值:TypeError:Rx_1.Subject不是构造函数
导入该项目的rxjs,并引用它是好的,但是当代码部署,它未能建立与消息的主题变量:
"Unhandled Promise rejection: Rx_1.Subject is not a constructor ; Zone: ; Task: Promise.then ; Value: TypeError: Rx_1.Subject is not a constructor".
RX位于systemjs:
(function (global) {
var map = {
'app': 'app',
'@angular': 'js/@angular',
// other libraries
'rxjs': 'js/rxjs',
};
// packages tells the System loader which filename and/or extensions to look for by default (when none are specified)
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' }
};
的方式我很实例主题:
import { Injectable } from '@angular/core';
import { Subject } from "rxjs/Rx";
@Injectable()
export class MyService {
constructor(private http: Http) {
let b = new Subject<string>(); // exteption HERE
let m = b.asObservable();
b.next("k");
所有rxjs的装载罚款浏览器。
UPDATE:看看这个多,如果我在我的角度服务导入的Rx为:
import * as Rx from 'rxjs/Rx';
,比检查控制台中的Rx对象,它只是有一个默认值, __useDefault属性获得者。 其他一切,可观察,主题都可以通过它们访问。
喜欢做:
var observable = Rx.Observable.create(function (observer) {
observer.next(1);
});
回来的:
VM1083:1 Uncaught TypeError: Cannot read property 'create' of undefined
然而,当然:
var observable = Rx.default.Observable.create(function (observer) {
observer.next(1);
});
工作正常。
我的项目是打字稿,我试过了目标编辑es5和es6。
我设法寻找How to import `Observable` from `Rx` (not angular)
后得到畅通我改变了我的tsconfig.json模块由“系统”,“CommonJS的”,和Rx LIB文件被不干将transpiled。
这是一个例子,如何主题被实例化
@Injectable()
export class MyService {
public invokeEvent:Subject<any> = new Subject();
constructor() {}
}
关于观测量,这是一个伟大的书约Using Observables。
在哪一行是异常? –
试图实例化Subject或Observable,一直在玩注释之一等 – amy8374
检查“'rxjs':'js/rxjs'是什么,并尝试从'rxjs/Subject'中导入它。 – martin