completeRequest method
Completes the pending request with the given requestId. Returns true
if the request was found and completed, false if no pending request
matched (e.g. requestId=0 from a protocol-level server error).
Implementation
bool completeRequest(int requestId, TransactionResult result) {
final pending = _pendingRequests.remove(requestId);
if (pending == null) {
return false;
}
pending.dispose();
if (pending.uuidRequestId != null) {
_requestIdByUuid.remove(pending.uuidRequestId);
}
if (result.isSuccess) {
pending.completer.complete(result);
} else {
pending.completer.completeError(
SpacetimeDbReducerException(
reducerName: pending.reducerName,
message: result.errorMessage ?? 'Unknown error',
result: result,
),
);
}
return true;
}