2016-05-14 8 views
0

React Nativeでストレージを扱うクラスを構築していて、async/awaitパターンを使用したいとします。 getItemは機能しますが、setItemを非同期化する必要があるかどうかはわかりません。私は?ReactNative AsyncStorageとasync/awaitを組み合わせたもの。 setItem操作には "await"が必要ですか?

class StorageLayer { 

    static async getStorageKey(key) { 
    try{ 
     let value = await AsyncStorage.getItem(key); 
     return value; 
    } 
    catch(e){ 
     return null; 
    } 
    } 

    static setStorageKey(key, value) { 
    console.log("setStorageKey key ->", key, value); 

    return AsyncStorage.setItem(key, value); 
    } 


} 

VS:

... 
static async setStorageKey(key, value) { 
    console.log("setStorageKey key ->", key, value); 

    return AsyncStorage.setItem(key, value); 
} 
+0

'setItem'がすでに約束を返す場合、ここでは違いはありません。 – Bergi

答えて

0

問題は、非同期callatackだろう。 setItemに例外がスローされた場合、待ち時間を使用しなかった場合はsetStorageKeyはコールスタックに含まれません。

これが可能であれば、ここでは省略することができます。

+0

私もそうです: '成功するにはAsyncStorage.setItem(key、value);を待ちます。 追加しますか?同じパターン? – Guy

+0

一時変数に結果を代入する必要はありません。単純に 'await AsyncStorage.setItem()'を返すことができます。 –

関連する問題