美文网首页
Flutter 异步回调

Flutter 异步回调

作者: 守护浪漫的小香樟 | 来源:发表于2021-03-25 09:15 被阅读0次

    前几天做一个功能,需要在异步回调未完成时候进行等待;也就是说同步执行N个异步方法. 总是在第一个异步未执行完成时候剧执行了第二个异步方法,效果很不理想.有什么方法可以实现这样的功能呢?


    大体的思路:给每个异步加上等待;如下:

    //将订单信息存储

          item.forEach((key, value) {

            setAtPageData(key, value);

          });

          //监听回调

          await registerPayListen(context);

          _timerCancel();

    但是registerPayListen方法怎么才能在我不想要结束时候等待呢?

    此处我是采用定时器去监听某一个bool当为真时候则结束异步;如下:

    registerPayListen<T>(BuildContext context) async {

        var completer = Completer();

        Future zyn = completer.future;

        //微信支付回调失败  则执行此

        _countdownTimer = Timer.periodic(new Duration(seconds: 1), (timer) {

          if (wxPayFinish) {

            completer.complete();

          }

        });

        await zyn.whenComplete(() => print('完成'));

      }

    只有在 completer.complete();执行时候才会回调异步方法并进行回调

    相关文章

      网友评论

          本文标题:Flutter 异步回调

          本文链接:https://www.haomeiwen.com/subject/mdklhltx.html