1

我有一个广播流,我用超时订阅它:

final s = originBroadcast.timeout(timeout, onTimeout: (sink) => sink.close());
await for (final event in s) {
  ...
}

问题是timeout()创建另一个流(s),当我取消订阅或出现超时时,它不会取消原始流(originBroadcast)。是否有可能做到这一点?

4

1 回答 1

0

我找到了解决方法:

final s = originBroadcast.timeout(
  timeout,
  onTimeout: (sink) => sink.close(),
);
s.listen((event) {...});
于 2021-10-05T16:15:49.710 回答