有人可以告訴我為什么return "NOK"即使狀態為真,代碼還是會被執行?這不是return關鍵字停止函式執行并回傳值的目的嗎?還是我錯過了一些關于異步函式或 Dart 語言本身的東西?
static dynamic getUserRef() async {
// HttpOverrides.global = MyHttpOverrides();
bool status;
await InfosHelper.getInfo('testinfo').then((response) {
InfoModel info = InfoModel.fromJson(response.data);
status = info.status;
Map<String, dynamic> otherData = info.data;
if (status) {
return "OK";
}
});
return "NOK";
}
uj5u.com熱心網友回復:
您正在呼叫 .then 這是它自己的方法,因此狀態 true 將停止執行 .then 方法,但主 getUserRef 始終回傳“Nok”
static dynamic getUserRef() async {
// HttpOverrides.global = MyHttpOverrides();
bool status;
var response=await InfosHelper.getInfo('testinfo');
if (response!=null){
InfoModel info=InfoModel.fromJson(response.data);
Map<String, dynamic> otherData = info.data;
if(info.status){
return 'ok';
}
else{
return 'nok'}
}
}
else{
//Error
}
uj5u.com熱心網友回復:
嘗試這個
static Future<String> getUserRef() async {
// HttpOverrides.global = MyHttpOverrides();
final response = await InfosHelper.getInfo('testinfo');
InfoModel info = InfoModel.fromJson(response.data);
bool status = info.status;
Map<String, dynamic> otherData = info.data;
return status ? "OK" : "NOK";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/430589.html
上一篇:如何將此迭代更改為異步函式?
