fetchを使用して、いくつかのAPIコールを反応ネイティブで行います。フェッチはサーバへのリクエストを起動せず、thenブロックまたはexceptブロックは呼び出されません。これは無作為に起こります、私は競争状態またはそれに類するものがあるかもしれないと思います。このようなリクエストを1回失敗した後は、アプリをリロードするまで、同じAPIへのリクエストは一度も発生しません。どのようにこれの背後に理由を追跡するための任意のアイデア。私が使用したコードは以下の通りです。ネイティブフェッチに反応して呼び出さない、またはキャッチしない
const host = liveBaseHost;
const url = `${host}${route}?observer_id=${user._id}`;
let options = Object.assign({
method: verb
}, params
? {
body: JSON.stringify(params)
}
: null);
options.headers = NimbusApi.headers(user)
return fetch(url, options).then(resp => {
let json = resp.json();
if (resp.ok) {
return json
}
return json.then(err => {
throw err
});
}).then(json => json);
このようにcatchブロックを追加しようとします。.catch(error => error) –
Chromeでデバッグするときにのみ発生しますか?もしそうなら、私は[この問題](https://github.com/facebook/react-native/issues/6679)に関連するかもしれません。 'resp.json()'の前に 'setTimeout(()=> null、0);を追加してみてください。 – ncuillery
@ncuilleryあなたの応答をありがとう、それはクロムでしか起こっていない、それはアプリのテストビルドでも起こります。私があなたが言及した問題を見たが、私のものは少し違っていた。その問題では、resp、json()メソッドがブロックされますが、私の場合、fetchメソッドが複数回呼び出されたとしてもthenブロックは決して実行されません。 –