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



所以我有这个显示股价的小工具。我使用HTTP调用来获取股票价格,当然这个函数是异步的,在返回股票价格之前,我会在主体中等待网络服务完成。然而,每次我试图打印这只股票时,它都说这是一个未来,但我不知道如何打开它?我已经在网络电话中等待了,所以这不应该打开它,给我真正的价值吗?

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'];
}

您需要一个等待的stockService.getStockPriceBySymbol

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

或者未来。然后

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

最新更新