cancelAll method
void
cancelAll()
Clear the queue and cancel all active requests
Implementation
void cancelAll() async {
final requests = _queue.toList();
_queue.clear();
for (var request in requests) {
request._addEvent(DownloadState.cancelled);
request.isCancelled = true;
}
_activeWorkers.forEach((request, worker) {
worker.port.send(WorkerCommand.cancel);
// ensure if wasn't cancelled due to pre-started downloading state
for (final delay in [500, 1000, 1500]) {
Future.delayed(Duration(milliseconds: delay)).then((_) {
if (worker.request == request) {
worker.port.send(WorkerCommand.cancel);
}
});
}
});
}