async関数の戻り値をコールバック関数内から返す方法です。
といっても良くわからないと思うので、下のコードを見てください。
こんな感じで値を返したいときがあると思いますが、その方法の紹介記事です。
Future<String> hoge() async {
fuga().then((){
// ここからhoge関数の値を返したい
})
.catchError((){
// ここからhoge関数の値を返したい
});
}
Completerというクラスを使って次のようにかけます。
Future<String> hoge() async {
final Comleter<String> completer;
fuga().then((){
completer.complete("then");
})
.catchError((){
completer.completeError("error");
});
return completer.future;
}