StreamProvider 是否处理之前的 Stream 实例及其订阅?

问题描述 投票:0回答:0

请看下面使用 Dart Riverpod 的伪代码。

final dependingStreamProvider = StreamProvider.autoDispose<int>((ref) {
  final depending = ref.watch(dependingProvider);

  if (depending == typeA) {
     return AStream(); // returns stream of int
  } else {
     return BStream(); // returns a different stream of int
  }
});

在这种情况下,随着

dependingProvider
改变它的状态,
StreamProvider
创建另一个
Stream
实例。

我的问题是,陈旧的

Stream
实例是否被 Riverpod 处理掉(即它的
StreamController
得到
close
d)?还是我们必须以某种方式处理自己?

我在这里看到一个类似的问题:Do you have to manually dispose streams from a streamprovider in Flutter? 但我不太确定接受的答案是否适用于我上面的案例。

我知道

autoDispose
会在没有widget监听的情况下处理,但是上面的情况是不同的情况🤔

flutter dart stream riverpod
© www.soinside.com 2019 - 2024. All rights reserved.