enqueue<T> method

Future<T> enqueue<T>({
  1. int priority = 0,
  2. required Future<T> requestExecutor(),
})

添加请求到队列

priority 请求优先级(数字越大优先级越高,默认 0) requestExecutor 实际执行请求的函数

返回 Future,请求完成后返回结果

Implementation

Future<T> enqueue<T>({
  int priority = 0,
  required Future<T> Function() requestExecutor,
}) {
  final completer = Completer<T>();
  final request = _QueuedRequest<T>(
    priority: priority,
    requestExecutor: requestExecutor,
    completer: completer,
  );

  _queue.add(request);
  _notifyStatusChange();
  _processQueue();

  return completer.future;
}