私はここでその考え方を理解しようとすると、リアクティブプログラミングに直面しています。私は問題hereを得ました、そして、それは解決されたようですが、私にもう少し質問を残して、それらの1つはフィルターです。ここで私は私がなどconcatMap
ようなツール文の一部、take
、from
を理解だと思う私はOLSNの答え、ObservablesのRxJSまたはAngular2のフィルタにサブスクライブする方法は?
function myLoop(item_array) {
return Observable.from(item_array)
// if you don't mind the execution-order you can use "mergeMap" instead of "concatMap"
.concatMap(item => configHardwareMock(item)
.switchMap(resultId => Observable.interval(500)
.do(() => console.info("Checking status of: " + resultId))
.switchMap(() => intervalCheckingStatus(resultId))
.filter(status => Boolean(status)) // your logic if the status is valid, currently just a boolean-cast
.take(1) // and complete after 1 value was valid
.mapTo(item) // map back to "item" so we can notify the subscriber (this is optional I guess and depends on if you want this feature or not)
)
);
}
//an example of such boolean from olsn
function intervalCheckingStatus(resultId) {
if (Math.random() < .4) {
return Observable.of(false);
}
return Observable.of(true);
}
から借りたいくつかのコードは、今では.filter(status => Boolean(status))
あるので、私は別の深刻なを置くために何を持っている場合はさこのブール関数でのREST APIリクエスト/通信には、別のsubscrible()
コードが含まれている可能性があります。そのようなフィルターを壊すのだろうか?物事(出来事)はどのような順序で流れますか?このハードウェア通信は正常ですか(非強力なハードウェアなので)非同期ではないはずですか?
これは '.filter()'演算子で何をしたいかによって決まります... – martin
なぜ 'subscribe()'を 'filter()'に入れたいのですか?達成すべきと思う方法ではなく、達成したいことを説明することで、あなたの質問を言い換えることができますか? – AngularChef
フィルタアクションはREST APIリクエストとレスポンスと解析関数が深刻であるため、subscribe()を含む関数を再利用することがあります。 –