私は、systemjsを使ってマッピング/ロードするangular2アプリを持っています。未処理プロミス拒否: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プロパティゲッター。 他のすべて、Observable、Subjectはそれらからアクセス可能です。
やっ同様:
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);
});
。
私のプロジェクトはtypescriptで、私はターゲットコンパイルes5とes6を試しました。
どの行に例外がありますか? –
SubjectやObservableのいずれかをインスタンス化しようとしましたが、コメントアウトして遊んでいました。 – amy8374
'' rxjs ':' js/rxjs''が何であるかを確認し、 'rxjs/Subject'からインポートしてみてください。 – martin