Метод join
Future<String> join(Собирает строку из представлений в виде строк событий данных.
Если separator указано, оно вставляется между любыми двумя элементами.
Любая ошибка в потоке приводит к завершению будущего с этой ошибкой. В противном случае он завершается со собранной строкой, когда приходит событие "done".
Исходный код
Future<String> join([String separator = ""]) {
_Future<String> result = new _Future<String>();
StringBuffer buffer = new StringBuffer();
StreamSubscription subscription;
bool first = true;
subscription = this.listen((T element) {
if (!first) {
buffer.write(separator);
}
first = false;
try {
buffer.write(element);
} catch (e, s) {
_cancelAndErrorWithReplacement(subscription, result, e, s);
}
}, onError: (e) {
result._completeError(e);
}, onDone: () {
result._complete(buffer.toString());
}, cancelOnError: true);
return result;
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Stream/join.html