Flutter 颤振等待websocket响应

Flutter 颤振等待websocket响应,flutter,websocket,Flutter,Websocket,解决 我已经用Future函数和函数内部的Completer解决了这个问题 Stream<List> getFile(List imageL) async*{ if(imageL.isNotEmpty){ List downloadedData = List(); socket.emit("PostsImagem", (imageL)); socket.on("ImagemPost", (dados) { downloadedDat

解决 我已经用Future函数和函数内部的Completer解决了这个问题

Stream<List> getFile(List imageL) async*{
  if(imageL.isNotEmpty){
     List downloadedData = List();
     socket.emit("PostsImagem", (imageL));
     socket.on("ImagemPost", (dados) {
         downloadedData = dados;
         imageL = List();
        });
 //I can't return the downloadedData because is inside the                     //socket.on()
      }
    }
我正在使用WebSocket从服务器上获取一些图像。 我有一个函数,它会发出一个带有我需要的图像名称的事件,并发送一个带有图像的事件,运行正常,但我需要我的应用程序等待我的函数返回,因为我的应用程序正在调用该函数,并试图在没有图像的情况下转到下一页。 有人能告诉我如何让我的应用程序等待我的功能返回吗

更新

我现在正在使用Stream Builder,但无法从函数返回数据

Stream<List> getFile(List imageL) async*{
  if(imageL.isNotEmpty){
     List downloadedData = List();
     socket.emit("PostsImagem", (imageL));
     socket.on("ImagemPost", (dados) {
         downloadedData = dados;
         imageL = List();
        });
 //I can't return the downloadedData because is inside the                     //socket.on()
      }
    }
Stream-getFile(List-imageL)异步*{
if(imageL.isNotEmpty){
列表下载数据=列表();
socket.emit(“PostsImagem”,(imageL));
socket.on(“ImagemPost”),(护墙板){
下载数据=护墙板;
imageL=List();
});
//我无法返回下载的数据,因为它位于//socket.on()中
}
}

我对Flitter了解不多,但要想让任何人回答,他们需要看看您的一些代码。进行检查。调用函数时应使用async/await,并在函数后使用“then”,以确保在获得图像后它将移动到其他页面。如果使用stream builder,并且数据为空,则我可以解决此问题。请停留在加载屏幕上,我现在的问题是,当我从我的服务器收到事件时,我无法返回数据,我已经用我的代码更新了帖子。我对颤振不太了解,但任何人回答问题时,他们都需要查看您的一些代码。进行检查。调用函数时应使用async/await,并在函数后使用“then”,以确保在获得图像后它将移动到其他页面。如果使用stream builder,并且数据为空,则我可以解决此问题。请停留在加载屏幕上,我现在的问题是,当我从服务器收到事件时,我无法返回数据,我已经用我的代码更新了帖子。