我試圖將資料傳遞給一個回傳未來的變數,但即使我使用的是異步和等待,它也會回傳為空。我在這里缺少什么?
import 'package:http/http.dart' as http;
import 'dart:convert';
const apiKey = 'deac2cf3c5bb6ee4e7350802f47595bd';
const apiURL =
'https://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=$apiKey';
var lon;
void main() async {
lon = await Weather().longitude;
print(lon); // returns null
}
class Weather {
var longitude;
Weather({this.longitude});
void getWeatherData() async {
Uri parsedUrl = Uri.parse(apiURL);
http.Response response = await http.get(parsedUrl);
if (response.statusCode == 200) {
longitude = jsonDecode(response.body)['coord']['lon'];
}
}
}
預期輸出:139 實際輸出:null
uj5u.com熱心網友回復:
您正在等待建構式,它不是異步函式,而且您正在訪問尚未設定的變數 longtiude,您需要先呼叫該getWeatherData函式
final weather = Weather();
await weather.getWeatherData();
print(weather.longtiude);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474157.html
上一篇:Dart相當于ApacheCommonsCollectionsBag
下一篇:非整數HTTP回應代碼可能嗎?
