Flutter Dart Callback转同步

2022-01-10  本文已影响0人  旺仔_100
怎么将一个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()方法里面输入的值了

上一篇 下一篇

猜你喜欢

热点阅读