在我的測驗代碼中,函式 fetchExchangeRates 將回傳一個串列物件而不是 Future 宣告為它的回傳型別,但是此代碼將構建良好,但如果我洗掉 async 關鍵字,編譯將抱怨型別不匹配。
那么為什么使用 async 關鍵字構建就可以了?
class Rate{
String baseCurrency = '';
String quoteCurrency = '';
double exchangeRate = 0;
Rate({required this.baseCurrency,required this.quoteCurrency,required this.exchangeRate});
}
Future<List<Rate>> fetchExchangeRates() async{
List<Rate> list = [];
list.add(Rate(
baseCurrency: 'USD',
quoteCurrency: 'EUR',
exchangeRate: 0.91,
));
list.add(Rate(
baseCurrency: 'USD',
quoteCurrency: 'CNY',
exchangeRate: 7.05,
));
list.add(Rate(
baseCurrency: 'USD',
quoteCurrency: 'MNT',
exchangeRate: 2668.37,
));
print('fetchExchangeRates returns');
return list;
}
void main() {
fetchExchangeRates();
print('after fetchExchangeRates');
}
uj5u.com熱心網友回復:
因為async使您的函式異步并回傳Future型別而async Future不是Future
使用async當u想要得到與異步回應await
喜歡
Future<void> _foo () async {
await yourAsynchronousRequest();
}
uj5u.com熱心網友回復:
如果沒有,await您可以洗掉Future&async兩者
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/315572.html
上一篇:Flutterfirebase錯誤發生例外。LateError(LateInitializationError:本地“firebaseUser”尚未初始化。)
