observableが放射するすべての値をテストし、一定の条件を満たす場合は結果をエラーアウトし、そうでない場合は値を渡します。これのための演算子はありますか?Observablesをパイプする方法
1
A
答えて
1
throw
を使用すると、条件に一致しないケースを分けることができますが、それらは直ちに終了します。
let source = Observable.of(1,2,3);
source
.mergeMap(value => {
if (value > 1) { // condition
return Observable.throw(`Out Of Condition: ${value}`);
}
return Observable.of(value);
})
.subscribe(
value => console.log(`Next: ${value}`),
error => console.log(`Error: ${error}`),
() => console.log('completed')
);
結果:
Next: 1
Error: Out Of Condition: 2
またbashでstdout
とstderr
のような方法を考えることができます。このために、追加情報が追加されました。この場合、途中で終了しません。
const stdout = 1;
const stderr = 2;
let source = Observable.of(1,2,3);
source
.map(value => {
if (value > 1) { // condition
return [stderr, value];
}
return [stdout, value];
})
.subscribe(channel_value => {
let channel = channel_value[0];
let value = channel_value[1];
if (channel == stdout) {
console.log(`stdout: ${value}`);
}
else if (channel == stderr) {
console.log(`stderr: ${value}`);
}
});
結果:私はあなたが探しているオペレータがある
stdout: 1
stderr: 2
stderr: 3
0
私はこれが正しい答えであれば知っているが、何私のために働いていない、これは非常に洗練されObservable.create
Observable.create((observer: Observer) =>
sourceObservable.subscribe((val: Value) => {
if(condition)
observer.next(val);
else
observer.error(val);
}, observer.error, observer.complete)
)
ました。
関連する問題
- 1. ngForで非同期パイプを使用Observables(Observables)(Observables)(角)
- 2. Observablesをチェーン/結合する方法
- 3. Observablesを複数解決する方法
- 4. Observablesを「同期する」方法は?
- 5. RxJava Observablesをテストする方法を理解する
- 6. execveとパイプの問題 - 元のパイプを回復する方法?
- 7. JVMヒープ・ダンプをパイプする方法
- 8. シェル作成パイプをリダイレクトする方法
- 9. git cloneをパイプする方法
- 10. InputStreamをProcessBuilderにパイプする方法
- 11. pwdをpushdにパイプする方法
- 12. Angular2はObservablesを使用する正しい方法ですか?
- 13. angular2:observablesを使用してウィンドウをデバウンスする方法:resize
- 14. Observablesを遅延データソースとして使用する方法
- 15. Observablesで無限ループを回避する方法は?
- 16. HTTP observablesからエラーを処理する方法
- 17. ネストされたObservablesをAngular 2で平坦化する方法
- 18. knockout.js observablesの配列を作成する方法は?
- 19. RxJS Observablesでカウントダウンタイマーを作成する方法は?
- 20. HTTP:Angular 2 + TS HTTPでObservablesを使用する方法
- 21. ObservablesをJavaScriptで使用する "eachSeries"への方法は?
- 22. RxJS observablesを順番に使用する方法は?
- 23. ngrx observablesでコールバックhellを回避する方法
- 24. 角 - 姓のパイプでソートする方法
- 25. ファイル(NodeJS)にパイプする方法
- 26. VBScript objShell.Runでパイプする方法は?
- 27. Set-ADComputerにパイプする方法
- 28. PuTTY sshでパイプを作る方法は?
- 29. ObservablesのRxJSまたはAngular2のフィルタにサブスクライブする方法は?
- 30. Observablesを延期する
考える[すべての](http://reactivex.io/rxjs/class/es6/Observable.js~Observable .html#instance-method-every) – Maxime
ところで、この種の質問については、stackoverflowの代わりにGitterを使用してください。 – Maxime
Gitterとは何ですか?それはなぜstackoverflowよりも良いですか? –