amy*_*374 5 rxjs typescript systemjs angular
我有一个 Angular 2 应用程序,用于systemjs映射/加载。
在项目中导入rxjs并引用它是可以的,但是当部署代码时,它无法构造变量Subject并显示消息:
“未处理的 Promise 拒绝:Rx_1.Subject 不是构造函数;区域:;任务:Promise.then;值:TypeError:Rx_1.Subject 不是构造函数”。
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' }
};
Run Code Online (Sandbox Code Playgroud)
我实例化主题的方式:
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");
Run Code Online (Sandbox Code Playgroud)
所有内容都rxjs在浏览器中正常加载。
更新:如果我将RxAngular 服务导入为:
import * as Rx from 'rxjs/Rx';
Run Code Online (Sandbox Code Playgroud)
与Rx在控制台中检查对象相比,它只有一个默认值和__useDefault属性 getter。其他一切,可观察的,主题都可以通过它们访问。
喜欢做 :
var observable = Rx.Observable.create(function (observer) {
observer.next(1);
});
Run Code Online (Sandbox Code Playgroud)
返回:
VM1083:1 未捕获类型错误:无法读取属性“创建”
undefined
当然,然而:
var observable = Rx.default.Observable.create(function (observer) {
observer.next(1);
});
Run Code Online (Sandbox Code Playgroud)
工作正常。
我的项目是在 Typescript 中,我尝试过目标编译es5和es6.
在查看如何从“Rx”(非角度)导入“Observable”后,我成功地解锁了
我将 tsconfig.json 模块从“system”更改为“commonjs”,并且 Rx lib 文件在没有吸气剂的情况下进行转换。
| 归档时间: |
|
| 查看次数: |
3895 次 |
| 最近记录: |