Spec-Zone.ru › Dart 2

dart:async

Метод transform<S>

Stream<S> transform<S>(
  1. StreamTransformer<T, S> streamTransformer
)

Применяет streamTransformer к этому потоку.

Возвращает преобразованный поток, то есть результат streamTransformer.bind(this). Этот метод просто позволяет записать вызов streamTransformer.bind в цепочечном формате, как

stream.map(mapping).transform(transformation).toList()

что может быть удобнее, чем вызывать bind напрямую.

Функция streamTransformer может вернуть любой поток. Будет ли возвращаемый поток потоком с возможностью широковещательной передачи или нет, и какие элементы он будет содержать, полностью зависит от преобразования.

Этот метод следует всегда использовать для преобразований, которые рассматривают весь поток как представляющий единственное значение, которое, возможно, было разделено на несколько частей для передачи, например, файл, считываемый с диска или извлекаемый из сети. Затем преобразование создаст новый поток, который будет преобразовывать значение потока по частям (возможно, с использованием Converter.startChunkedConversion). Результирующий поток может снова содержать фрагменты результата, но не должен соответствовать конкретным событиям из исходной строки.

Реализация

Stream<S> transform<S>(StreamTransformer<T, S> streamTransformer) {
  return streamTransformer.bind(this);
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Stream/transform.html

Spec-Zone.ru

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