dart:async
庫中Stream.map
方法的用法介紹如下。
用法:
Stream<S> map<S>(
S convert(
T event
)
)
將此流的每個元素轉換為新的流事件。
創建一個新流,使用convert
函數將此流的每個元素轉換為新值,並發出結果。
對於此流中的每個數據事件 o
,返回的流會提供一個值為 convert(o)
的數據事件。如果 convert
拋出,則返回的流將其報告為錯誤事件。
錯誤和完成事件原封不動地傳遞給返回的流。
如果此流是,則返回的流是廣播流。 convert
函數在每個偵聽器的每個數據事件中調用一次。如果多次收聽廣播流,則每個訂閱將在每個數據事件上單獨調用convert
。
與 transform 不同,此方法不會將流視為單個值的塊。相反,每個事件都獨立於之前和之後的事件進行轉換,這可能並不總是正確的。例如,如果代理對或多字節 UTF-8 編碼被拆分為單獨的事件,並且嘗試獨立地對這些事件進行編碼或解碼,則 UTF-8 編碼或解碼將給出錯誤的結果。
例子:
final stream =
Stream<int>.periodic(const Duration(seconds: 1), (count) => count)
.take(5);
final calculationStream =
stream.map<String>((event) => 'Square: ${event * event}');
calculationStream.forEach(print);
// Square: 0
// Square: 1
// Square: 4
// Square: 9
// Square: 16
相關用法
- Dart Stream.multi用法及代碼示例
- Dart Stream.fromFutures用法及代碼示例
- Dart Stream.fold用法及代碼示例
- Dart Stream.asBroadcastStream用法及代碼示例
- Dart Stream.handleError用法及代碼示例
- Dart Stream.where用法及代碼示例
- Dart Stream.reduce用法及代碼示例
- Dart Stream.join用法及代碼示例
- Dart Stream.error用法及代碼示例
- Dart Stream.periodic用法及代碼示例
- Dart Stream.take用法及代碼示例
- Dart Stream.every用法及代碼示例
- Dart Stream.lastWhere用法及代碼示例
- Dart Stream.contains用法及代碼示例
- Dart Stream.eventTransformed用法及代碼示例
- Dart Stream.firstWhere用法及代碼示例
- Dart Stream.drain用法及代碼示例
- Dart Stream.empty用法及代碼示例
- Dart Stream.distinct用法及代碼示例
- Dart Stream.timeout用法及代碼示例
- Dart Stream.transform用法及代碼示例
- Dart Stream.singleWhere用法及代碼示例
- Dart Stream.fromFuture用法及代碼示例
- Dart Stream.skipWhile用法及代碼示例
- Dart Stream.skip用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 map<S> method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。