与SendPort一起,是隔离间通信的唯一方式。
ReceivePort有一个sendPort
属性,它返回一个SendPort。通过此SendPort发送的任何消息都将发送到从它创建的ReceivePort。在那里,消息将被分发到ReceivePort
的监听器。
ReceivePort是一个非广播流。这意味着它会缓冲传入的消息,直到注册了一个监听器。只有一个监听器可以接收消息。有关将端口转换为广播流的详细信息,请参阅Stream.asBroadcastStream。
ReceivePort可能有多个SendPort。
- 实现类型
构造函数
- ReceivePort([String debugName = ''])
- 打开一个用于接收消息的长生命期端口。工厂
- ReceivePort.fromRawReceivePort(RawReceivePort rawPort)
- 从一个RawReceivePort创建一个ReceivePort。工厂
属性
- first → Future
- 此流的第一个元素。无setter继承
- hashCode → int
- 此对象的哈希码。无setter继承
- isBroadcast → bool
- 此流是否是广播流。无setter继承
-
isEmpty → Future<
bool> - 此流是否包含任何元素。无setter继承
- last → Future
- 此流的最后一个元素。无setter继承
-
length → Future<
int> - 此流中的元素数量。无setter继承
- runtimeType → Type
- 对象运行时类型的表示。无setter继承
- sendPort → SendPort
- 向此接收端口发送消息的SendPort。无setter
- single → Future
- 此流的单个元素。无setter继承
方法
-
any(
bool test(dynamic element)) → Future< bool> - 检查是否此流提供的任何元素都通过
test
接受。继承 -
asBroadcastStream(
{void onListen(StreamSubscription subscription)?, void onCancel(StreamSubscription subscription)?}) → Stream - 返回一个多订阅流,它产生与该流相同的事件。继承
-
asyncExpand<
E> (Stream< E> ? convert(dynamic event)) → Stream<E> - 将每个元素转换为一串异步事件。继承
-
asyncMap<
E> (FutureOr< E> convert(dynamic event)) → Stream<E> - 创建一个新流,该流将此流的每个数据事件异步映射到新事件。继承
-
cast<
R> () → Stream< R> - 将此流适配为
Stream<R>
。继承 -
close(
) → void - 关闭接收端口。
-
contains(
Object? needle) → Future< bool> - 返回是否在流提供的元素中发生
needle
。继承 -
distinct(
[bool equals(dynamic previous, dynamic next)?]) → Stream - 如果数据事件与上一个数据事件相等,则跳过数据事件。继承
-
drain<
E> ([E? futureValue]) → Future< E> - 丢弃此流上的所有数据,但会发出完成或发生错误时的信号。继承
-
elementAt(
int index) → Future - 返回此流第
index
个数据事件的值。继承 -
every(
bool test(dynamic element)) → Future< bool> - 检查
test
是否接受此流提供的所有元素。继承 -
expand<
S> (Iterable< S> convert(dynamic element)) → Stream<S> - 将此流中的每个元素转换为元素序列。继承
-
firstWhere(
bool test(dynamic element), {dynamic orElse()?}) → Future - 找到与此流匹配的第一个元素
test
。继承 -
fold<
S> (S initialValue, S combine(S previous, dynamic element)) → Future< S> - 通过重复应用
combine
来组合一系列值。继承 -
forEach(
void action(dynamic element)) → Future< void> - 对此流中的每个元素执行
action
。继承 -
handleError(
Function onError, {bool test(dynamic error)?}) → Stream - 创建一个包装流,用于拦截此流的一些错误。继承
-
join(
[String separator = ""]) → Future< String> - 将元素的字符串表示形式组合成一个字符串。继承
-
lastWhere(
bool test(dynamic element), {dynamic orElse()?}) → Future - 查找在此流中匹配
test
的最后一个元素。继承 -
listen(
void onData(dynamic message)?, {Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription - 监听来自 Stream 的事件。override
-
map<
S> (S convert(dynamic event)) → Stream< S> - 将此流的每个元素转换成新的流事件。继承
-
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。继承
-
pipe(
StreamConsumer streamConsumer) → Future - 将此流的事件管道传输到
streamConsumer
。继承 -
reduce(
dynamic combine(dynamic previous, dynamic element)) → Future - 通过重复应用
combine
来组合一系列值。继承 -
singleWhere(
bool test(dynamic element), {dynamic orElse()?}) → Future - 在此流中查找匹配
test
的单个元素。继承 -
skip(
int count) → Stream - 跳过来自此流的第一个
count
个数据事件。继承 -
skipWhile(
bool test(dynamic element)) → Stream - 在匹配
test
条件的情况下跳过数据事件。继承 -
take(
int count) → Stream - 提供最多来自此流的第一个
count
个数据事件。继承 -
takeWhile(
bool test(dynamic element)) → Stream - 在
test
成功时传递数据事件。继承 -
timeout(
Duration timeLimit, {void onTimeout(EventSink sink)?}) → Stream - 创建一个与该流具有相同事件的新流。继承
-
toList(
) → Future< List> - 收集此流的所有元素到一个列表中。继承
-
toSet(
) → Future< Set> - 将此流的元素收集到一个集合中。继承
-
toString(
) → String - 该对象的字符串表示形式。继承
-
transform<
S> (StreamTransformer< dynamic, S> streamTransformer) → Stream<S> - 将
streamTransformer
应用到此流。继承 -
where(
bool test(dynamic event)) → Stream - 从该流创建一个新的流,丢弃一些元素。继承
运算符
-
operator ==(
Object other) → bool - 相等运算符。继承