Spec-Zone.ru › Dart 1

dart:async

Метод join

Future<String> join([String separator = "" ])

Собирает строку из представлений в виде строк событий данных.

Если 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API