gpt4 book ai didi

react-native - 如何使用 async/await 通过使用函数从 AsyncStorage 中检索值以响应 native

转载 作者:行者123 更新时间:2023-12-04 00:03:30 25 4
gpt4 key购买 nike

我已经创建了 prefsManager.js - 用于从 AsyncStorage 存储和检索数据,但我遇到了一个问题,比如当打印日志时它总是返回未定义,因为它是异步的,但我想通过函数的调用。

import { AsyncStorage } from 'react-native';
import prefskey from '../utils/constants/prefskeys';

const setValue = async (key, value) => {
await AsyncStorage.setItem(key, value);
}

const getValue = async (key) => {
let value = '';
try {
value = await AsyncStorage.getItem(key) || 'none';
} catch (error) {
// Error retrieving data
console.log(error.message);
}
return value;
};

const prefsmanager = {
setValue,
getValue
}
export default prefsmanager;

当按下按钮时,我在 Home.js 中使用了这个方法。

_handlePress() {

await prefsManager.setValue(prefskey.username, this.state.username)

console.log("username =>>", await prefsManager.getValue(prefskey.username));

}

最佳答案

你需要像这样在你的函数上使用 async 关键字。

    import { AsyncStorage } from 'react-native';
import prefskey from '../utils/constants/prefskeys';

const prefsnamager = {

setValue: function (key, value) {
AsyncStorage.setItem(key, value)
},

getValue: async (key) => {
let value = '';
try {
value = await AsyncStorage.getItem(key) || 'none';
} catch (error) {
// Error retrieving data
console.log(error.message);
}
return value;
}
}
export default prefsnamager;

调用函数

_handlePress = () => {
prefsManager.setValue(prefskey.username, this.state.username)

console.log("username =>>" , prefsManager.getValue(prefskey.username));

}

关于react-native - 如何使用 async/await 通过使用函数从 AsyncStorage 中检索值以响应 native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54211163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com