いくつかのUtils機能を持つStorage.jsファイルを作成します。 ほとんどの場合、私はこの方法でそれを使用します 非同期someFunction()=> しかし、私の場合、私は構文 import async関数の使い方は?
import {AsyncStorage} from 'react-native'
export const saveOnDevice = async (name, data) => {
\t try {
\t \t if (data !== null && data !== undefined) {
\t \t \t await AsyncStorage.setItem(name, JSON.stringify(data));
\t \t }
\t } catch (error) {
\t \t console.log(error)
\t }
};
export const getOnDevice = async (name) => {
\t try {
\t \t const data = await AsyncStorage.getItem(name);
\t \t if (data !== null && data !== undefined) {
\t \t \t return data
\t \t }
\t } catch (error) {
\t \t console.log(error)
\t }
};
どのように非同期関数を宣言せずに使用できますか?
import {saveOnDevice} from '../../utils/Storage'
export function fetchUrlWithRedux(url) {
\t return (dispatch) => {
\t \t dispatch(fetchUrlRequest(url));
\t \t return fetchUrl(url, dispatch).then(([response, json]) => {
\t \t \t if (response.status === 200) {
\t \t \t \t saveOnDevice('url', json.data.host);
\t \t \t \t dispatch(fetchUrlSuccess(json))
\t \t \t }
\t \t \t else {
\t \t \t \t dispatch(fetchUrlError())
\t \t \t }
\t \t }).catch(() => dispatch(fetchUrlError()))
\t }
}
は私のコードの何が問題になっているのですか?
はsaveOnDevice()
にコールする前に、私はあなたが.then()
に渡された匿名関数の前にasync
を追加する必要があると思う