gpt4 book ai didi

javascript - React Native 中使用 AsyncStorage 的异步辅助函数

转载 作者:行者123 更新时间:2023-11-30 11:21:52 26 4
gpt4 key购买 nike

我想要做的是提醒本地存储中的company_id

import React, { Component } from 'react';
import { ActivityIndicator, AsyncStorage, Button, StatusBar, Text, StyleSheet, View, } from 'react-native';
import * as pouchDB_helper from '../utils/pouchdb';

type Props = {};
export default class HomeScreen extends Component<Props> {

render() {

AsyncStorage.getItem('company_id', (err, result) => {
alert(result);
});

return (
<View style={styles.container}>
<Button title="Hi" onPress={this.doSomething} />
</View>
);
}

}

以下代码可以工作,但我希望能够从辅助函数内部执行此操作。如果您在顶部看到,我有 import * as pouchDB_helper from '../utils/pouchdb';

在那里我有以下内容:

import React from 'react';
import { AsyncStorage } from 'react-native';
import PouchDB from 'pouchdb-react-native'


export async function pouchDB_config() {
return AsyncStorage.getItem('company_id', (err, result) => {
return result;
});
}

如果我执行 alert(pouchDB_helper.pouchDB_config()) 我会得到一个具有以下内容的对象,而不是 AsyncStorage.getItem() 代码: {"_40":0、"_65":0、"_55"_null、"72":null}

我知道我显然没有在整个异步性质上做正确的事情,所以如果有人有任何指导,我将非常感激。我仍然不知道如何在 React Native 中使用异步函数。

最佳答案

这是因为当您调用函数 pouchDB_helper.pouchDB_config() 时,它会返回一个 promise 。

有多种方法可以利用这一点来发挥您的优势。

在你的 util/pouchdb 中更改函数如下:

export async function pouchDB_config() {
return await AsyncStorage.getItem('company_id');
}

现在您可以按如下方式调用该函数:

pouchDB_config().then((company_id) => {
console.log(company_id);
});

或者您可以在异步函数中的其他任何地方调用它:

const otherAsyncFunction = async () => {
const company_id = await pouchDB_config();
console.log(company_id);
}

关于javascript - React Native 中使用 AsyncStorage 的异步辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49559400/

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