未处理的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。

+0

在哪一行是异常? –

+0

试图实例化Subject或Observable,一直在玩注释之一等 – amy8374

+1

检查“'rxjs':'js/rxjs'是什么,并尝试从'rxjs/Subject'中导入它。 – martin

我设法寻找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

+0

对,那是为我吹的那条线;是否将它放在构造函数之外,完全如您所愿,或者在构造函数中。 – amy8374

+0

它是内联构造的,为什么你需要将它添加到构造函数中? –

+0

即使我构建它内联,我仍然得到相同的构造函数异常。 – amy8374