私はフィルタ関数を返そうとしていましたが、戻り値はコールバックでは機能しないようです。ここでthis.store.let(getIsPersonalized$)
は観測可能な発光ブール値であり、this.store.let(getPlayerSearchResults$)
はビデオクラスの観察可能な発光オブジェクトである。 これを同期的に実行するには、ストアから受け取ったオブザーバブルを変更できないとすれば、非同期コールバックを避けることができますか?あなたがさんが購読isPersonalized$
に分岐を出すことができればオブザーバーから戻る方法は?
isPersonalized$ = this.store.let(getIsPersonalized$);
videos$ = this.store.let(getPlayerSearchResults$)
.map((vids) => this.myFilter(vids));
myFilter(vids) {
this.isPersonalized$.subscribe((x){
if(x){
return this.fileterX(vids);//Return from here
}
else {
return this.filterY(vids);//Or Return from here
}
});
}
fileterX(vids) {
return vids.filter((vid) => vids.views>100;);
}
fileterY(vids) {
return vids.filter((vid) => vids.views<20;);
}