2016-04-11 3 views
1

私のコードに構文エラーがあります。フェッチコールバックでAsyncStorage.setItemを使用する方法?

async getJSON() { 
    await fetch(url) 
     .then((response) => response.text()) 
     .then((responseText) => { 
     await AsyncStorage.setItem(STORAGE_KEY, responseText);   
     }) 
     .catch((error) => { 
     console.warn(error); 
     }); 
    }, 

エラーは、私はあなたが非同期を必要と待つことはすべてのためにawait

+0

あなたは 'async' /' await'を持っているとき、あなたはまだ 'then' /' catch'とコールバックを使用しているのはなぜ非同期修飾子 – carlosdubusm

+0

を追加??? – Bergi

+0

@Bergi '' AsyncStorage.setItem''のために構文エラーが発生したときに追加しました。そのコールバック関数宣言に '' async''を追加するべきかどうかは分かりませんでした。 – YSJ

答えて

1

を文句だと思うawait AsyncStorage.setItem(STORAGE_KEY, responseText); に予期しないトークンです。

async getJSON() { 
    await fetch(url) 
     .then((response) => response.text()) 
     .then(async (responseText) => { // <-- add async here 
     await AsyncStorage.setItem(STORAGE_KEY, responseText);   
     }) 
     .catch((error) => { 
     console.warn(error); 
     }); 
    }, 

また、async/awaitのポイントは、実際に非同期のときにコードのルックを同期させることです。あなたは、このような上記のコードを書き換えることができます。

async getJSON() { 
    try { 
     var response = await fetch(url); 
     var responseText = response.text(); 
     await AsyncStorage.setItem(STORAGE_KEY, responseText); 
    } catch(error) { 
     console.warn(error); 
    } 
} 
+0

私は参照してください。どうもありがとうございました。 – YSJ

関連する問題