簡體   English   中英

React Native-類上的異步/等待未按預期工作

[英]React Native - Async/Await on Class not working as expected

這是我的代碼...

'use strict';
var React = require('react-native');
var {
  AsyncStorage
} = React;



exports.buildUrl = function(){
  var test = new Sales();
  test.getOrder();
}

class queryBuilder{

  constructor() {

  }

  getUrl(){
    AsyncStorage.getItem('auth').then((value) => {
      var auth = JSON.parse(value);
      var store = auth.url;
      console.log('store = ' + store);
      return store;
    });
  }

}

class Sales extends queryBuilder{

  async getOrder(){
    console.log('get order hit');
    try{
        var urlstart =  await this.getUrl();
    } catch(e) {
      console.log('ERROR')
      console.log(e);
    }
    console.log('URL BELOW');
    console.log(urlstart);
    console.log('URL ABOVE');
  }

}

在我的getOrder方法中,我希望urlstart不會是undefined因為我已經使用過await。

getUrl()方法中的console.log是我控制台中最后要返回的內容。

也許正是這種星期六的感覺,任何幫助都值得贊賞!

我自己解決了這個問題。 Async Await要求在我正在調用的函數上返回一個承諾。 我已經修改了getUrl()方法,如下所示。

  getUrl(){ return new Promise(function(resolve, reject) { AsyncStorage.getItem('auth').then((value) => { var auth = JSON.parse(value); var store = auth.url; console.log('store = ' + store); resolve(store); }); } 

任何進一步的建議仍然不勝感激。

更新得更好,感謝Yuri

getUrl(){ return AsyncStorage.getItem('auth').then(value => JSON.parse(value).url) }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM