TypeScriptとかだとCallbackをこんな感じで、
Promise化できるけど、Flutterでもしたいなと思い、
いろいろ調べてみたときの備忘録(*´ω`*)
function myPromise(time){ return new Promise(resolve => { setTimeout(() => resolve(), time) }); }
CompleterでFuture化
Completer
をつかえばいいっぽい
import 'dart:async'; Future myPromise(int time) async { final completer = new Completer(); new Timer(new Duration(seconds: time), (){ completer.complete(); }); return completer.future; }
返り値や例外も返せる
final completer = new Completer<String>(); // 返り値 completer.complete("return value"); // 例外・エラー completer.completeError(error);
以上!! これでコールバック地獄から開放される...(*´ω`*)