Angular 7中的switchMap调用两次
创始人
2024-10-17 06:30:30
0

在Angular 7中,使用RxJS的switchMap操作符时,有时候会出现多次调用的问题。这是因为switchMap在每次源Observable发出新的值时都会取消之前的内部Observable,并订阅一个新的内部Observable。

解决这个问题的方法是使用debounceTime操作符来延迟源Observable的发出时间。这样就可以确保在源Observable发出新的值之前,先取消之前的内部Observable的订阅。

以下是一个示例代码:

import { Component, OnInit } from '@angular/core';
import { Observable, of } from 'rxjs';
import { switchMap, debounceTime } from 'rxjs/operators';

@Component({
  selector: 'app-example',
  template: `
    
    
  • {{ result }}
`, }) export class ExampleComponent implements OnInit { public searchTerm: string; public searchResults$: Observable; ngOnInit() { this.searchResults$ = of('').pipe( debounceTime(300), // 延迟300毫秒 switchMap(() => this.search()) ); } search(): Observable { // 模拟异步请求,返回一个Observable return of(['result 1', 'result 2', 'result 3']); } }

在上面的示例中,我们使用debounceTime操作符来延迟源Observable的发出时间为300毫秒。这样,当用户输入搜索关键字时,只有在用户停止输入300毫秒后,才会发送搜索请求。

这样就可以避免在用户快速输入时多次调用switchMap。

相关内容

热门资讯

透视专业!德普之星辅助软件(透... 透视专业!德普之星辅助软件(透视)hh poker辅助器先试用,教程经验(的确有挂)-哔哩哔哩1、h...
hhpoker脚本!fishp... hhpoker脚本!fishpoker透视底牌(透视)方法-切实解密存在有挂1、玩家可以在fishp...
透视开挂!wpk透视插件(透视... 透视开挂!wpk透视插件(透视)wepokerplus透视脚本免费,教程经验(有挂攻略)-哔哩哔哩1...
竞技联盟破解版最新版!德州透视... 竞技联盟破解版最新版!德州透视插件(透视)教程-真是关于是有挂1、超多福利:超高返利,海量正版游戏,...
透视推荐!hh poker软件... 透视推荐!hh poker软件(透视)wepokerplus开挂,教程教材(有挂助手)-哔哩哔哩1、...
epoker有透视吗!wepo... epoker有透视吗!wepoker怎么看牌型(透视)挂-其实分享是真的挂1、这是跨平台的wepok...
透视开挂!wepoker-h5... 透视开挂!wepoker-h5下载(透视)wpk私人局有透视吗,教程烘培(有挂方法)-哔哩哔哩1、w...
wepoker开辅助能查到吗!... wepoker开辅助能查到吗!wepoker有辅助工具吗(透视)方法-果然教你真的有挂wepoker...
透视总结!佛手大菠萝有挂吗(透... 透视总结!佛手大菠萝有挂吗(透视)wepoker挂,教程妙计(有挂细节)-哔哩哔哩1、佛手大菠萝有挂...
wpk模拟器多开!We pok... wpk模拟器多开!We poker辅助器下载(透视)工具-竟然有挂有挂wpk模拟器多开!We pok...