は、コードスニペットです:
Observable.if(//can also be onErrorResumeNext
() => true,
Observable.fromPromise(
fetch('/'+ locale + '_state.json', {
headers: {
'Accept': 'application/json'
},
method: 'GET'
}).then(res => {
if (!res.ok) {
throw new Error(res.statusText);
}
return res.json();
})
),
Observable.fromPromise(
fetch('/'+ defaultLocale + '_state.json', {
headers: {
'Accept': 'application/json'
},
method: 'GET'
}).then(res => {
if (!res.ok) {
throw new Error(res.statusText);
}
return res.json();
})
)
)
は、なぜこれらのステートメントの両方が実行されますか?私は何かをしている/間違ったやり方でこれに近づいているのですか? Observable.ifのようなもっと単純なものを返すのはうまくいきますが、RxJsが主に非同期データ用であることを理解する限り、上記の例は同じように動作しませんか?
Observable.mergeMapを使用してObservable.ifとObservable.onErrorResumeNextの動作を書き直すことができますが、私がやったことは終わりですが、ここで何かが不足しているように感じます。