Skip to content

Retry function work incorrectly if the list is empty #9

@tronghuy5555

Description

@tronghuy5555
  Future<List<D>> loadPage({bool isRefresh = false}) async {
    if ((currentKey == null) || isRefresh) {
      if (_cancelableOperation != null && !_cancelableOperation!.isCompleted)
        _cancelableOperation!.cancel();
      _cancelableOperation = CancelableOperation.fromFuture(loadInitial(pageSize));
      final results = await _cancelableOperation!.valueOrCancellation();
      if (autoDetectEndList) {
        isEndList = ((results?.item1.length ?? 0) < pageSize);
      }
      currentKey = results?.item2;
      return results?.item1 ?? [];
    } else {
      _cancelableOperation =  CancelableOperation.fromFuture(loadPageAfter(currentKey!, pageSize));
      final results = await _cancelableOperation!.valueOrCancellation();
      currentKey = results?.item2;
      if (autoDetectEndList) {
        isEndList = ((results?.item1.length ?? 0) < pageSize);
      }
      return results?.item1 ?? [];
    }
  }
Step: Empty list -> call retry function
Expect: loadInitial called
Actual: loadPageAfter called

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions