Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振中如何从socket.on方法中提取数据_Flutter_Sockets_Dart_Websocket - Fatal编程技术网

Flutter 颤振中如何从socket.on方法中提取数据

Flutter 颤振中如何从socket.on方法中提取数据,flutter,sockets,dart,websocket,Flutter,Sockets,Dart,Websocket,由某人发布的编辑代码。颤振中如何从socket.on方法中提取数据。颤振中如何从socket.on方法中提取数据 try { event.socket.emit(seGetDriverList, [ DriverListSocketReq( accessToken: event.data.accessToken, portalId: event.data.portalId, body: Body(

由某人发布的编辑代码。颤振中如何从socket.on方法中提取数据。颤振中如何从socket.on方法中提取数据

try {
      event.socket.emit(seGetDriverList, [
        DriverListSocketReq(
            accessToken: event.data.accessToken,
            portalId: event.data.portalId,
            body: Body(
                dateFrom: event.data.body.dateFrom ?? "",
                limit: event.data.body.limit ?? "",
                dateTo: event.data.body.dateTo ?? "",
                page: event.data.body.page ?? 1,
                search: event.data.body.search ?? "",
                sort: event.data.body.sort ?? "createdAt",
                sortOrder: event.data.body.sortOrder ?? "DESC")).toJsonReq()
      ]);
      event.socket.on(seGetDriverList, (data) async*{ // this function is not executing after use async* keyword here
        var response = data["data"];
        var list = response["rows"] as List<dynamic>;
        drivers = list.map((e) => Driver.fromJsonResp(e)).toList();
        yield DriversLoaded(drivers: drivers);//problem is here, i can not use yield here
      });
    } catch (e) {
      StackTrace.fromString(e.toString());
      yield ManageDriverFailure(message: e.toString());
    }
试试看{
event.socket.emit(seGetDriverList[
DriverListSocketReq(
accessToken:event.data.accessToken,
portalId:event.data.portalId,
身体:身体(
dateFrom:event.data.body.dateFrom,
限制:event.data.body.limit,
dateTo:event.data.body.dateTo,
第页:event.data.body.page第1页,
搜索:event.data.body.search,
排序:event.data.body.sort???“createdAt”,
sortOrder:event.data.body.sortOrder???“DESC”).toJsonReq()
]);
event.socket.on(seGetDriverList,(data)async*{//在此处使用async*关键字后,此函数不执行
var响应=数据[“数据”];
变量列表=响应[“行”]作为列表;
drivers=list.map((e)=>Driver.fromJsonResp(e)).toList();
yield driversload(drivers:drivers);//问题在这里,我不能在这里使用yield
});
}捕获(e){
StackTrace.fromString(例如toString());
yield-ManageDriverFailure(消息:e.toString());
}

您应该解释问题的背景,最好格式化代码片段,以便其他开发人员能够提供帮助。简单地粘贴代码不会让任何人对回答格式错误的问题感兴趣