如何在非异步函数中获取异步操作的值?

快速投掷

所以我有这个显示股票价格的小部件。我使用 HTTP 调用来获取股票价格,当然这个函数是异步的,在返回股票价格之前,我等待网络服务完成。但是,每次我尝试打印此 stockPrice 时,它​​都会说这是一个未来,但我不知道如何解开它?我已经在我的网络调用中等待了,所以不应该打开它并给我背后的真正价值吗?

StockService stockService = new StockService();
           var stockPrice = stockService.getStockPriceBySymbol(symbols.elementAt(x));
           print(stockPrice);

网络服务:

Future<dynamic> getStockPriceBySymbol(String symbol) async {
    NetworkService networkService = NetworkService(
        '$alphaStockApiURL?function=GLOBAL_QUOTE&symbol=$symbol&apikey=$kAlphaStockAPIKey');

    var stockData = await networkService.getData();
    // print(stockData['Global Quote']['05. price']);
    return stockData['Global Quote']['05. price'];
  }
流动

你需要一个 await stockService.getStockPriceBySymbol

var stockPrice = await stockService.getStockPriceBySymbol(symbols.elementAt(x));

或未来 .then

stockService.getStockPriceBySymbol(symbols.elementAt(x)).then((stockPrice){
  print(stockPrice);
)};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章