Future<T> readAsync<T>(Refreshable<Future<T>> future) async { final sub = listen(future, (_, _) {}); try { return await sub.read(); } finally { sub.close(); } }