怎么将一个Callback回调转化成Future同步方法(Callback to Future),可以配套async / await去使用呢?
class ViewUtil {
///界面初始化完成
static Future<Void> initFinish() async {
Completer<Void> completer = Completer();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
completer.complete();
});
return completer.future;
}
}
void _init() async {
var s = await ViewUtil.initFinish();
print(s);
}
说明
Future和Completer的泛型最好保持一致
例如都是String的话,complete()方法里面就可以加上相应的内容,然后await接受这个方法时候,就能拿到complete()方法里面输入的值了
网友评论