【问题标题】:React Native, fetch after async functionReact Native,在异步函数后获取
【发布时间】:2019-04-04 22:49:45
【问题描述】:

我有一个问题我不知道如何解决...

我在 AsyncStorage 中保存了一个 api 令牌,当我想获取休息时我需要这个 api 令牌,但我不知道该怎么做。

我有带有 AsyncStorage 函数的 Functions.js 文件。

async retrieveItem(key) {
  try {
    const retrievedItem =  await AsyncStorage.getItem(key);
    const item = JSON.parse(retrievedItem);
    return item;
  } catch (error) {
    console.warn(error.message);
  }
},
getApiToken: function(){
   try {
        return Functions.retrieveItem('api_token');
      } catch (error) {
        console.warn(error.message);
      }
    },

具有提取功能的文件。 (Api.js)

我用异步函数测试过,但没找到...

async get(url) {

    try {
        var api = await Functions.getApiToken();

        if (!api)
            api = "";

        let opt = {
            method: 'get',
            headers: new Headers({
                'Content-Type': 'application/x-www-form-urlencoded'
            }),
        };

        return fetch(baseUrl + url + api, opt);
    } catch (error){
        console.warn(error);
    }       

},

当我执行 fetch 功能时,它对我来说没有问题

还有屏幕文件 Home.js

componentDidMount() {

  Api.get('home').then( response => {
    this.setState({
        profiles: response.profiles,
    });
  });
}

【问题讨论】:

    标签: react-native ecmascript-6 async-await fetch


    【解决方案1】:

    请稍微修改一下您的 Functions.js 代码 -

    async retrieveItem(key) {
      try {
        const retrievedItem = await AsyncStorage.getItem(key);
        const item = JSON.parse(retrievedItem);
        return item;
      } catch (error) {
        console.warn(error.message);
      }
    },
    
    async getApiToken{
      try {
        let token = await retrieveItem('api_token');
        return token;
      } catch (error) {
        console.warn(error.message);
      }
    }
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2020-04-14
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2023-03-03
      • 2020-03-26
      • 2022-01-25
      相关资源
      最近更新 更多