为了我的生命,我不能使这工作。我搜索了又搜索,但没有找到任何示例(所有示例都有.fromevent()
,没有http.get
)。
在我的模板中,我有以下输入:
<input type="text" (input)="categoriesSearch($event)">
categoriesSearch(event) {
this.categoriesSubscription = this.apiService
.getCategoriesList(this.uploadForm.get('categories').value)
.debounceTime(3000)
// .throttleTime(3000)
.subscribe(
(response) => {
this.categories = response.data;
}
);
}
getCategoriesList(keyword = null) {
const headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Bearer', this.authService.user.token);
const getParams: URLSearchParams = new URLSearchParams();
getParams.set('keyword', keyword);
return this.http.get(this.apiHost + '/categories', { headers: headers, search: getParams })
.map(response => response.json());
}
我究竟如何告诉this.http.get
只在自上一个请求或“no request”(意味着最初的3秒延迟)之后至少过了3秒时才发出请求?好吧,也许在这里我应该说“自从我上次在输入中输入了一些东西”。
我还尝试在服务中直接在.map()
运算符之前使用debounceTime()/throttleTime(),但结果是一样的。
但是HTTP.GET请求根本没有被解除或限制!如果我在3秒内键入10个字符,它将发出10个http请求。
你的实施方式不对。您需要首先捕获输入,应用声纳并执行HTTP请求。
您可以通过以下几种方式实现
<input type="text" #input>
@ViewChild('input') text: ElementRef;
ngAfterViewInit() {
let text$ = Observable.fromEvent(this.text.nativeElement, 'keyup')
.do(() => console.log("keyup"))
.debounceTime(3000)
.distinctUntilChanged()
.switchMap(() => getCategoriesList())
.subscribe(res => console.log(res));
}
<input type="text" (keyup)="search($event)">
searchTerms = new Subject<string>();
search(term: string): void {
this.searchTerms.next(term);
}
ngOnInit(): void {
this.searchTerms
.debounceTime(3000)
.distinctUntilChanged()
.switchMap(() => getCategoriesList())
.subscribe(term => {
console.log();
});
<input type="text" [formControl]="term">
组件
term = new FormControl();
ngOnInit() {
this.items = this.term.valueChanges
.debounceTime(3000)
.distinctUntilChanged()
.switchMap(term => getCategoriesList(term))
.subscribe(res => console.log(res));
}
通常用于HTTP/HTTPS请求失败/成功等处理. 进程: 主进程 IncomingMessage是由 EventEmitter响应可读流接口 实例事件 事件: 'data' 用途:响应或回调传送到应用的数据 chunk Buffer - 响应正文的数据块. 事件: 'end' 触发:响应正文已结束时 事件: 'aborted' 触发:正在进行的HTTP事务期间请求已取消时 事件: 'error
并发请求处理 我创建了一个服务器,并使用s.listenandserve()来处理请求。据我所知,这些请求是同时送达的。我使用一个简单的处理程序来检查它: 我看到,如果我发送了几个请求,我将看到所有的“1”出现,只有在一秒钟后所有的“2”出现。但是如果删除Hibernate行,我会看到程序在完成前一个请求之前从不启动请求(输出为1 2 1 2 1 2...)。所以我不明白,如果它们是并发的还是不是
问题内容: 我正在尝试构建一个简单的Golang / Appengine应用程序,该应用程序使用通道来处理每个http请求。原因是我希望每个请求都执行合理的大内存计算,并且以线程安全的方式执行每个请求(即,并发请求的计算不会混淆)非常重要。 本质上,我需要一个同步队列,该队列一次只能处理一个请求,并且通道看起来很自然。 是否可以将Go的缓冲通道用作线程安全队列? 但是,我无法让我简单的hello
我在寻找一个解决方案,与反应形式的工作
我在调用AJAX请求后出现此错误。控件正在命中服务器端,所有进程都正常工作。但是,在调用控制器代码之前,我遇到了这个错误,并在这里绊倒了自己。 Jsp Ajax呼叫 控制器 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequest方法不支持警告:请求方法'POST'不支