Promise.resolve()
と同等のものは何もありません(値を決めることは重要です)?Promise.resolve()と同等のRxJS
rxjs alternative to doing a Promise.resolve?と同様の質問があります。
私たちはデータを提供してもうまく動作しますが、価値がないためわからない値を与えないとうまくいかないので、.subscribe()
は起動されません。
ionic2アプリのAngular2サービスでは、PromiseベースのサービスをObservablesに移行しようとしています。デバイスがオフラインの場合は、シーケンスのいくつかのステップをスキップする必要があります。約束で、私は順番にエラーを投げて、後でそれをキャッチした
return this.connectivityService.isOnline()
.flatMap((isOnline: boolean) => {
if (isOnline) {
return Promise.resolve(); // work as expected, subscribe() is called
} else {
return Observable.throw(new OfflineError('The device is offline.'));
}
})
.do(() => console.log('Do things here'));
次のコードはしていません:
return this.connectivityService.isOnline()
.flatMap((isOnline: boolean) => {
if (isOnline) {
return Observable.of(); // subscribe() is not called
} else {
return Observable.throw(new OfflineError('The device is offline.'));
}
})
.do(() => console.log('Do things here'));
それは観測と同じことを達成することは可能ですか?私が観察可能なものを使用していないかどうかは自由に感じてください。これは私にとって新しいものです。直接的な方法で質問に答えるために
は、ダミーデータを返すようにしてみてください。 ' return Observable.of(1); ' –
@TiepPhan' Observable.of(1) 'を返すとimhoは動作しますが、これは実行可能な解決策よりもハックです。 – bgondy
'Observable.of(undefined)'は完全に同等です。 – estus