Flutter 颤振中如何从socket.on方法中提取数据
由某人发布的编辑代码。颤振中如何从socket.on方法中提取数据。颤振中如何从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(
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());
}
您应该解释问题的背景,最好格式化代码片段,以便其他开发人员能够提供帮助。简单地粘贴代码不会让任何人对回答格式错误的问题感兴趣