Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何让switchMap在CombineTest内开火?_Angular_Rxjs6 - Fatal编程技术网

Angular 如何让switchMap在CombineTest内开火?

Angular 如何让switchMap在CombineTest内开火?,angular,rxjs6,Angular,Rxjs6,我有以下代码,它没有触发开关映射。不知道我做错了什么 import { switchMap} from "rxjs/operators"; import { combineLatest } from 'rxjs'; this.companies$ = combineLatest(this.authService.user$, this.filter$ ).pipe( switchMap(([user, filter]) =>{ re

我有以下代码,它没有触发开关映射。不知道我做错了什么

import { switchMap} from "rxjs/operators";
import { combineLatest } from 'rxjs';

this.companies$ = combineLatest(this.authService.user$, this.filter$ ).pipe(
            switchMap(([user, filter]) =>{
                return this.afs.collection<CompanyProfile>('companies', ref => {
                console.log("this doesnt fire"); 
                if (user) { ref.where('owner.network', '==', user.activeNetworkProfile.id) };
                if (filter) { ref.where('name', '==', filter) };
                return ref;
                }).valueChanges();
            } 
        ));
从“rxjs/operators”导入{switchMap};
从“rxjs”导入{combineLatest};
this.companys$=CombineTest(this.authService.user$,this.filter$).pipe(
开关映射(([用户,过滤器])=>{
返回此.afs.collection('companys',ref=>{
console.log(“这不会触发”);
if(user){ref.where('owner.network','=',user.activeNetworkProfile.id)};
if(filter){ref.where('name','=',filter)};
返回ref;
}).valueChanges();
} 
));

switchMap从未启动的原因是筛选器$observable从未初始化。我向构造函数中添加了以下代码,它成功了

this.filter$ = new BehaviorSubject(null); 

switchMap从未触发的原因是筛选器$observable从未初始化。我向构造函数中添加了以下代码,它成功了

this.filter$ = new BehaviorSubject(null);