@@ -120,8 +120,6 @@ class FakeSearchDataSource implements SearchDataSource {
120120 await rootBundle.loadString (assetPath);
121121 }
122122
123- int count = 0 ;
124-
125123 @override
126124 Future <SearchResults > search (String query, {String searchType}) async {
127125 if (! searchResponses.containsKey (query)) {
@@ -132,18 +130,18 @@ class FakeSearchDataSource implements SearchDataSource {
132130 }
133131 SearchQuery searchQuery =
134132 SearchQuery (query, this .cx, searchType: searchType);
135- var cachedResponse = await _cache.get (searchQuery);
136- if (cachedResponse != null ) {
137- return cachedResponse;
133+
134+ if (! _cache.isKeyInFlightOrInCache (searchQuery)) {
135+ _cache.markAsInFlight (searchQuery);
136+ } else {
137+ return await _cache.get (searchQuery);
138138 }
139+
139140 Map searchMap = jsonDecode (searchResponses[query].searchResponseJsonString);
140141 customsearch.Search search = customsearch.Search .fromJson (searchMap);
141142
142- print ('count: $count ' );
143- count++ ;
144-
145143 var result = SearchResults (search);
146- await _cache.set (searchQuery, result);
144+ _cache.set (searchQuery, result);
147145 return result;
148146 }
149147}
@@ -307,7 +305,6 @@ class CustomSearchDataSource implements SearchDataSource {
307305 final String cx;
308306 final String apiKey;
309307 customsearch.CustomsearchApi api;
310- int searchCount = 0 ;
311308 final ExpireCache <SearchQuery , SearchResults > _cache =
312309 ExpireCache <SearchQuery , SearchResults >();
313310
@@ -324,16 +321,14 @@ class CustomSearchDataSource implements SearchDataSource {
324321 SearchQuery searchQuery =
325322 SearchQuery (query, this .cx, searchType: searchType);
326323
327- final cachedResponse = await _cache.get (searchQuery);
328- if (cachedResponse != null ) {
329- return cachedResponse;
324+ if (! _cache.isKeyInFlightOrInCache (searchQuery)) {
325+ _cache.markAsInFlight (searchQuery);
326+ } else {
327+ return await _cache.get (searchQuery);
330328 }
331329
332- print ('count: $searchCount ' );
333- searchCount++ ;
334-
335330 final result = await searchQuery.runSearch (this .api);
336- await _cache.set (searchQuery, result);
331+ _cache.set (searchQuery, result);
337332 return result;
338333 }
339334}
0 commit comments