From 125dff5a3b9c97b5dd5543873d6156ee31e7a66c Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum <nweiz@google.com> Date: Mon, 3 Aug 2015 13:14:24 -0700 Subject: [PATCH] Add docs for new util methods. R=kevmoo@google.com Review URL: https://codereview.chromium.org//1259793005 . --- lib/src/utils.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/src/utils.dart b/lib/src/utils.dart index 2f4ff61b..e44e304d 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -323,6 +323,12 @@ Future maybeFirst(Stream stream) { return completer.future; } +/// Returns a [CancelableFuture] that returns the next value of [queue] unless +/// it's canceled. +/// +/// If the future is canceled, [queue] is not moved forward at all. Note that +/// it's not safe to call further methods on [queue] until this future has +/// either completed or been canceled. CancelableFuture cancelableNext(StreamQueue queue) { var fork = queue.fork(); var completer = new CancelableCompleter(() => fork.cancel(immediate: true)); @@ -333,6 +339,8 @@ CancelableFuture cancelableNext(StreamQueue queue) { return completer.future; } +/// Returns the result of whichever of [futures] completes first, and cancels +/// the others. Future race(Iterable<CancelableFuture> futures) { var completer = new Completer.sync(); for (var future in futures) { -- GitLab