Fixed race-condition-like bug, when switching between chats too fast
This commit is contained in:
parent
eb5eec3576
commit
258206a7a5
@ -5,6 +5,7 @@ import '../dataHolder.dart';
|
||||
|
||||
class ChatProps extends DataHolder {
|
||||
String _queryToken = "";
|
||||
DateTime _lastRequest = DateTime.now();
|
||||
|
||||
GetChatResponse? _getChatResponse;
|
||||
GetChatResponse get getChatResponse => _getChatResponse!;
|
||||
@ -17,11 +18,15 @@ class ChatProps extends DataHolder {
|
||||
@override
|
||||
void run() {
|
||||
notifyListeners();
|
||||
DateTime requestStart = DateTime.now();
|
||||
GetChatCache(
|
||||
chatToken: _queryToken,
|
||||
onUpdate: (GetChatResponse data) => {
|
||||
_getChatResponse = data,
|
||||
notifyListeners(),
|
||||
onUpdate: (GetChatResponse data) {
|
||||
if(!_lastRequest.isBefore(requestStart)) return; // Another request was faster
|
||||
_lastRequest = DateTime.now();
|
||||
|
||||
_getChatResponse = data;
|
||||
notifyListeners();
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -35,5 +40,4 @@ class ChatProps extends DataHolder {
|
||||
String currentToken() {
|
||||
return _queryToken;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user