我有一個包含一些未來回傳的函式,如下所示。
Future<Map<String, dynamic>> myFunction() {
if(some_condition){
returnFromThisFunc = {
'status': false,
'message':'Some message',
'data': {}
} as Future<Map<String, dynamic>>; // Error mentioning this line at 'as'
} else {
// Returning "Future<Map<String, dynamic>> returnFromThisFunc" return from some API and etc functions that are working fine.
}
return returnFromThisFunc;
}
現在的問題是,如果 mysome_condition為假,那么它作業正常并且函式正在回傳資料,但是當some_condition它為真時,它會給我這個錯誤Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Future<Map<String, dynamic>>' in type cast
如何解決這個問題并Future<Map<String, dynamic>>以任何方式回傳......???
uj5u.com熱心網友回復:
您可以Future.value在回傳時使用。
Future<Map<String, dynamic>> myFunction() {
Map<String, dynamic> returnFromThisFunc;
if (1 < 2) {
returnFromThisFunc = {
'status': false,
'message': 'Some message',
'data': {}
};
} else {
returnFromThisFunc = {};
}
return Future.value(returnFromThisFunc);
}
uj5u.com熱心網友回復:
當你的函式回傳型別是Future你應該在其中使用 await,但是當你沒有任何異步方法時,你應該使用Future.valuefor 回傳值。嘗試這個:
Future<Map<String, dynamic>> myFunction() {
if(some_condition){
returnFromThisFunc = {
'status': false,
'message':'Some message',
'data': {}
}
} else {
// Returning "Future<Map<String, dynamic>> returnFromThisFunc" return from some API and etc functions that are working fine.
}
return Future.value(returnFromThisFunc) ;/// <--- add this
}
uj5u.com熱心網友回復:
試試下面的代碼:
Future<Map<String, dynamic>> myFunction() {
if(some_condition){
returnFromThisFunc = {
'status': false,
'message':'Some message',
'data': {}
}
} else {
// Returning "Future<Map<String, dynamic>> returnFromThisFunc" return from some API and etc functions that are working fine.
}
return Future.value(returnFromThisFunc); // <= add this
}
如果您有任何問題,請隨時評論我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/509913.html
上一篇:從靜態檔案夾加載檔案時遇到問題
