首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flutter套接字:当我在Flutter中多次使用socket.listen()时,如何获得异步重启?

flutter套接字:当我在Flutter中多次使用socket.listen()时,如何获得异步重启?
EN

Stack Overflow用户
提问于 2019-07-22 11:46:34
回答 1查看 309关注 0票数 0

为什么我拿不到listen2的结果?如何修改?在示例中,我只能访问listen1结果,而不能访问listen2结果。我是新来的

代码语言:javascript
复制
sample code:

  Future<List<int>> getResult() async {
    var a =  creatDataToken();
    var e=  await Socket.connect(MyApp.host, MyApp.port).then((Socket socket) async{
        socket.add(a);
        socket.listen((List<int> listen1) async{
          debugPrint('result listen1 :$listen1');
          List<int> loginList=  creatDataLogin(listen1);
          await  Socket.connect(MyApp.host, MyApp.port).then((Socket socket) async {
                    socket.add(loginList);
                    debugPrint('add:$loginList');
                    await socket.listen((List<int> listen2) {
                      debugPrint('result listen2 :$listen2');
                        return listen2;
                    });
              });
        });
    });

enter image description here

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 10:40:58

代码语言:javascript
复制
 bool flag;
  Future getResult() async {
    flag = false;
   var a =  creatDataToken() ;
   var b= await Socket.connect(MyApp.host, MyApp.port).then((Socket socket){
          mSocket=socket;
          mSocket.add(a);
          mSocket.addError((e){debugPrint('---addError--$e');});
          mSocket.listen(onReceiver);
    }).catchError((error){
             debugPrint('---catchError--$error');
              ToastUtils.showShortToast('username or password error!');
              return;
           });
    return b;
  }

  void onReceiver(List<int> event) {
    if(!flag){
      debugPrint('result listen1 :$event');
      flag=true;
      List<int> loginList=  creatDataLogin(event);
      debugPrint('loginList:$loginList');
      mSocket.add(loginList);
    }else{
      debugPrint('result listen2 :$event');
      resolveResult(event);
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57138953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档