我有一個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。
在哪一行是異常? –
試圖實例化Subject或Observable,一直在玩註釋之一等 – amy8374
檢查「'rxjs':'js/rxjs'是什麼,並嘗試從'rxjs/Subject'中導入它。 – martin