J'ai une application angular2, qui utilise systemjs pour mapper/charger.Non pris en compte Rejet de la promesse: Rx_1.Subject n'est pas un constructeur; Zone:; Tâche: Promise.then; Valeur: TypeError: Rx_1.Subject n'est pas un constructeur
Importation des rxjs dans le projet, et le référencement, il est très bien, mais quand le code est déployé, il ne parvient pas à construire une variable Sujet avec le message:
"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' }
};
la façon dont je suis l'instanciation le sujet:
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");
tous rxjs est chargé bien dans le navigateur.
MISE À JOUR: En regardant ce plus, si j'importer Rx dans mon service angulaire:
import * as Rx from 'rxjs/Rx';
et que inspecter l'objet Rx dans la console, il a juste un défaut, et Renvoie la propriété __useDefault. Tout le reste, observable, le sujet est accessible à travers eux.
Comme faire:
var observable = Rx.Observable.create(function (observer) {
observer.next(1);
});
ramène un:
VM1083:1 Uncaught TypeError: Cannot read property 'create' of undefined
alors que, bien sûr:
var observable = Rx.default.Observable.create(function (observer) {
observer.next(1);
});
fonctionne très bien.
Mon projet est en tapuscrit, j'ai essayé la compilation cible es5 et es6.
Sur quelle ligne l'exception? –
en essayant d'instancier le sujet ou l'observable, en jouant avec en commentant un etc. – amy8374
Vérifiez ce que '' rxjs ':' js/rxjs 'est et essayez d'importer depuis 'rxjs/Subject'. – martin