Angular Subject.onNext不是函数
我试图在我的http代码中使用一些reactiveX。为此,我创建了一个Subject,并试图调用onNext函数,但我得到一个错误,即Subject.onNext不是一个函数 html:Angular Subject.onNext不是函数,angular,Angular,我试图在我的http代码中使用一些reactiveX。为此,我创建了一个Subject,并试图调用onNext函数,但我得到一个错误,即Subject.onNext不是一个函数 html: ts: 原始异常:TypeError:this.queryStream.onNext不是函数 我所有的普通http函数都可以工作(this.jsonp.request(url/query).map().subscribe()),但onNext操作符不能工作。导入flatMap时也遇到问题,它似乎与map和d
ts:
原始异常:TypeError:this.queryStream.onNext不是函数
我所有的普通http函数都可以工作(this.jsonp.request(url/query).map().subscribe()),但onNext操作符不能工作。导入flatMap时也遇到问题,它似乎与map和debounce不在同一个“rxjs/add/operator/…”文件夹中。replace
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject'
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounce';
与:
import * as Rx from "rxjs/Rx";
及
将Subject
替换为Rx.Subject
将onNext
替换为next
(我只是补充上面的答案)
从rxjs v6开始,分组发生了变化。
在使用RXJSV6时,只需提及一些需要记住的事情
Mypackage.json:
"rxjs": "^6.0.0",
"rxjs-compat": "^6.2.2",
"rxjs-tslint": "^0.1.5",
从v6开始,以下各项将不起作用:-
1.
import * as Rx from 'rxjs/Rx'; (was earlier used for Rx.Observable.create(), etc )
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
// instead, use :-
import { Observable, Subject, of, from, fromEvent, interval } from 'rxjs';
// cannot use rxjs/Rx from v6 onwards.
2.
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounce';
// instead, use:
import { map, debounce } from 'rxjs/operators';
这是因为
onNext()
是旧RxJS(RxJS 4)的一部分,而在新的RxJS(RxJS 5)中,该方法被称为next()
为什么会发生如此重大的变化???!!!!我正在拔头发…谢谢,这真的很干净的进口!对于那些感兴趣的人,这里是从RxJS 4到5的完整迁移文档:这不是有点重(大小方面)吗,因为我们可能不必要地从Rx加载所有内容?根据关于的建议,我们应该只加载我们需要的Rx组件/运营商。
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounce';
// instead, use:
import { map, debounce } from 'rxjs/operators';