getMessageListV2 method
Implementation
Future<V2TimValueCallback<V2TimMessageListResult>> getMessageListV2(dynamic getMsgListParams) async {
// try {
final res = await wrappedPromiseToFuture(timeweb!.getMessageListHopping(getMsgListParams));
final paramsMap = jsToMap(getMsgListParams);
final isnewer = paramsMap["direction"] == 1;
final code = res.code;
if (code == 0) {
final resMap = jsToMap(res.data);
final List messageList = List.from(resMap['messageList']);
final bool isCompleted = resMap["isCompleted"];
final historyMessageListPromises = messageList.reversed.skipWhile((value) => jsToMap(value)["isDeleted"]).map((element) async {
final message = jsToMap(element);
if (message['type'] == MsgType.MSG_MERGER) {
mergerMsgList.add(element);
}
final responses = await V2TIMMessage.convertMessageFromWebToDart(element);
return responses;
}).toList();
final historyMessageList = await Future.wait(historyMessageListPromises);
final res2dart = Map<String, dynamic>.from({});
res2dart["isFinished"] = isCompleted;
res2dart["messageList"] = isnewer ? historyMessageList.reversed.toList() : historyMessageList;
return CommonUtils.returnSuccess<V2TimMessageListResult>(
res2dart,
);
} else {
return CommonUtils.returnErrorForValueCb("获取历史消息失败");
}
// } catch (error) {
// return CommonUtils.returnError(error);
// }
}