浏览代码

Handle no element stateError while fetching urls

Neeraj Gupta 3 年之前
父节点
当前提交
ccd587da3e
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      lib/utils/file_uploader.dart

+ 10 - 1
lib/utils/file_uploader.dart

@@ -654,7 +654,16 @@ class FileUploader {
     if (_uploadURLs.isEmpty) {
       await fetchUploadURLs(_queue.length);
     }
-    return _uploadURLs.removeFirst();
+    try {
+      return _uploadURLs.removeFirst();
+    } catch (e, s) {
+      if (e is StateError && e.message == 'No element' && _queue.isNotEmpty) {
+        _logger.warning("Oops, uploadUrls has no element now, fetching again");
+        return _getUploadURL();
+      } else {
+        rethrow;
+      }
+    }
   }
 
   Future<void> _uploadURLFetchInProgress;