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 {
|
class ChatProps extends DataHolder {
|
||||||
String _queryToken = "";
|
String _queryToken = "";
|
||||||
|
DateTime _lastRequest = DateTime.now();
|
||||||
|
|
||||||
GetChatResponse? _getChatResponse;
|
GetChatResponse? _getChatResponse;
|
||||||
GetChatResponse get getChatResponse => _getChatResponse!;
|
GetChatResponse get getChatResponse => _getChatResponse!;
|
||||||
@ -17,11 +18,15 @@ class ChatProps extends DataHolder {
|
|||||||
@override
|
@override
|
||||||
void run() {
|
void run() {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
DateTime requestStart = DateTime.now();
|
||||||
GetChatCache(
|
GetChatCache(
|
||||||
chatToken: _queryToken,
|
chatToken: _queryToken,
|
||||||
onUpdate: (GetChatResponse data) => {
|
onUpdate: (GetChatResponse data) {
|
||||||
_getChatResponse = data,
|
if(!_lastRequest.isBefore(requestStart)) return; // Another request was faster
|
||||||
notifyListeners(),
|
_lastRequest = DateTime.now();
|
||||||
|
|
||||||
|
_getChatResponse = data;
|
||||||
|
notifyListeners();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -35,5 +40,4 @@ class ChatProps extends DataHolder {
|
|||||||
String currentToken() {
|
String currentToken() {
|
||||||
return _queryToken;
|
return _queryToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user