gpt4 book ai didi

typescript - 未处理的 promise 拒绝 : Rx_1. 主题不是构造函数;区域 : ; Task: Promise. 然后;值 : TypeError: Rx_1. 主题不是构造函数

转载 作者:行者123 更新时间:2023-12-03 21:26:04 25 4
gpt4 key购买 nike

我有一个 angular2 应用程序,它使用 systemjs 来映射/加载。

项目中导入rxjs,引用就好了,但是在部署代码的时候,却无法构造一个Subject变量,提示信息:

"Unhandled Promise rejection: Rx_1.Subject is not a constructor ; Zone: ; Task: Promise.then ; Value: TypeError: Rx_1.Subject is not a constructor".



systemjs 上的 Rx:
(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 都在浏览器中正常加载。

更新 :再看看这个,如果我在我的 angular 服务中将 Rx 导入为:
import * as Rx from 'rxjs/Rx';

而不是在控制台中检查 Rx 对象,它只有一个默认值和 __useDefault 属性 getter。
其他一切,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。

最佳答案

我早些时候从'rxjs/Subject''导入'import {Subject}'。
更改为 'import { Subject } from 'rxjs''。
这为我解决了这个问题。

关于typescript - 未处理的 promise 拒绝 : Rx_1. 主题不是构造函数;区域 : ; Task: Promise. 然后;值 : TypeError: Rx_1. 主题不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com