writeAll method

  1. @override
Future<void> writeAll(
  1. Iterable objects, [
  2. String separator = ""
])
override

Writes the elements of objects separated by separator.

Writes the string representation of every element of objects, in iteration order, and writes separator between any two elements.

sink.writeAll(["Hello", "World"], " Beautiful ");

is equivalent to:

sink
  ..write("Hello");
  ..write(" Beautiful ");
  ..write("World");

Implementation

@override
Future<void> writeAll(Iterable objects, [String separator = ""]) {
  Future<void> future;

  Iterator iterator = objects.iterator;
  if (!iterator.moveNext()) _writeLock.synchronized(() {});

  if (separator.isEmpty) {
    future = write(iterator.current);
    while (iterator.moveNext()) {
      final current = iterator.current;
      future = future.then((_) => write(current));
    }
    ;
  } else {
    future = write(iterator.current);
    while (iterator.moveNext()) {
      future = future.then((_) => write(separator));

      final current = iterator.current;
      future = future.then((_) => write(current));
    }
  }

  return future;
}