gpt4 book ai didi

angular - Subject.onNext 不是函数

转载 作者:太空狗 更新时间:2023-10-29 17:18:09 25 4
gpt4 key购买 nike

我正在尝试在我的 http 代码中使用一些 reactiveX。为此,我创建了一个主题,并尝试调用 onNext 函数,但我收到一条错误消息,指出 subject.onNext 不是一个函数。

html:
<input #search (input)="generateSuggestions($event.target.value)">

:

import { Jsonp, Response } from 'angular2/http';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject'
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounce';
import { Injectable } from 'angular2/core';

@Injectable()
export class SearchService {
queryStream = new Subject();

generateSuggestions(query: string) {
this.queryStream.onNext(query)
.debounce(500)
.map(
query => this.jsonp.request( `http://urlendpoint/${query}` )
.map( (res: Response) => res.json() )
.subscribe( results => console.log(results) );
)
}
}
var queryStream = new Subject();

原始异常:TypeError:this.queryStream.onNext 不是函数

我所有的普通 http 函数都可以工作( this.jsonp.request(url/query).map().subscribe() )但是 onNext 运算符不起作用。我在导入 flatMap 时也遇到了问题,它似乎与 map 和 debounce 不在同一个“rxjs/add/operator/...”文件夹中。

最佳答案

替换

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";

Rx.Subject替换Subject

onNext 替换为 next

关于angular - Subject.onNext 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378248/

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