diff --git a/lib/src/async_cache.dart b/lib/src/async_cache.dart
index 8c25267..c2d7c01 100644
--- a/lib/src/async_cache.dart
+++ b/lib/src/async_cache.dart
@@ -89,12 +89,13 @@
   }
 
   /// Removes any cached value.
-  void invalidate() {
+  Future invalidate() {
     _cachedValueFuture = null;
-    _cachedStreamSplitter?.close();
+    Future invalidate = _cachedStreamSplitter?.close();
     _cachedStreamSplitter = null;
     _stale?.cancel();
     _stale = null;
+    return invalidate;
   }
 
   void _startStaleTimer() {
diff --git a/test/async_cache_test.dart b/test/async_cache_test.dart
index 747835b..0a5e0f0 100644
--- a/test/async_cache_test.dart
+++ b/test/async_cache_test.dart
@@ -32,7 +32,7 @@
     var completer = new Completer<String>();
     expect(cache.fetch(() => completer.future), completion('Expensive'));
     expect(cache.fetch(expectAsync0(() {}, count: 0)), completion('Expensive'));
-    await completer.complete('Expensive');
+    completer.complete('Expensive');
   });
 
   test('should fetch via a callback again when cache expires', () {
diff --git a/test/stream_queue_test.dart b/test/stream_queue_test.dart
index 32cc505..37dedb9 100644
--- a/test/stream_queue_test.dart
+++ b/test/stream_queue_test.dart
@@ -517,8 +517,8 @@
         expect(await events.next, 1);
         expect(controller.hasListener, isTrue);
 
-        events.cancel(immediate: true);
-        await expect(controller.hasListener, isFalse);
+        await events.cancel(immediate: true);
+        expect(controller.hasListener, isFalse);
       });
 
       test("cancels the underlying subscription when called before any event",
