問題は、RX でダブル ループ動作をエミュレートすることです。
while True:
try:
token = get_token()
while True:
try:
value = get_value_using_token(token)
do_something(value)
except:
break
except:
break
2 つのループが 2 つのオブザーバブルに置き換えられ、一方が外側のオブザーバーとして機能し、do_something(value)
それ自体をオブザーバーに置き換えることができれば、きれいになります。例外も適切に処理できます。外側のループはブロックする必要がありますが、バックオフ関数で再試行関数を使用して外側のループを使用して例外を処理しようとしているため、内側のループはそうでない場合があります。
これまでのところ、次を使用してシーケンスを構築できます。
Observable.from_iterable(value for value in iter(get_token, None))
.subscribe(do_something)
しかし、アウターのブロッキングモードで同様の構造を作成するにはどうすればよいですか?