From ed6d23f7de6d1661314dffc93fe9aa871d1d15d1 Mon Sep 17 00:00:00 2001 From: fischerscode Date: Thu, 17 Sep 2020 14:35:05 +0200 Subject: [PATCH] Fixed throw in live list stream --- packages/dart/lib/src/utils/parse_live_list.dart | 11 +++++++---- packages/dart/lib/src/utils/parse_utils.dart | 4 ++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/dart/lib/src/utils/parse_live_list.dart b/packages/dart/lib/src/utils/parse_live_list.dart index 827e27f6b..db4e3a1cc 100644 --- a/packages/dart/lib/src/utils/parse_live_list.dart +++ b/packages/dart/lib/src/utils/parse_live_list.dart @@ -406,11 +406,17 @@ class ParseLiveList { keyVarObjectId, _list[index].object.get(keyVarObjectId)) ..setLimit(1); final ParseResponse response = await queryBuilder.query(); + if (_list.isEmpty) { + yield* _createStreamError( + ParseError(message: 'ParseLiveList: _list is empty')); + return; + } if (response.success) { _list[index].object = response.results?.first; } else { _list[index].object = null; - throw response.error; + yield* _createStreamError(response.error); + return; } } // just for testing @@ -732,7 +738,6 @@ class ParseLiveListDeleteEvent typedef StreamGetter = Stream Function(); typedef DataGetter = T Function(); - class ParseLiveListElementSnapshot { ParseLiveListElementSnapshot({this.loadedData, this.error}); @@ -743,5 +748,3 @@ class ParseLiveListElementSnapshot { bool get failed => error != null; } - - diff --git a/packages/dart/lib/src/utils/parse_utils.dart b/packages/dart/lib/src/utils/parse_utils.dart index 0fa7b4c2b..e39ff5d03 100644 --- a/packages/dart/lib/src/utils/parse_utils.dart +++ b/packages/dart/lib/src/utils/parse_utils.dart @@ -84,3 +84,7 @@ Future batchRequest( return handleException(e, ParseApiRQ.batch, debug, 'parse_utils'); } } + +Stream _createStreamError(Object error) async* { + throw error; +}