为什么我拿不到listen2的结果?如何修改?在示例中,我只能访问listen1结果,而不能访问listen2结果。我是新来的
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;
});
});
});
});发布于 2019-07-23 10:40:58
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);
}
}https://stackoverflow.com/questions/57138953
复制相似问题