gpt4 book ai didi

flutter - 您是否必须在 Flutter 中手动处理来自流提供程序的流?

转载 作者:行者123 更新时间:2023-12-03 19:15:43 25 4
gpt4 key购买 nike

我在官方documentation中找不到这个对于 provider 包,streamprovider 是自动处理他们提供的流的处理还是您必须手动执行此操作?如果是这样,在何处处置使用流提供程序公开的流的最佳实践是什么?

最佳答案

不,使用 StreamProvider 时不需要手动清理流。
StreamProvider 扩展了 DeferredInheritedProvider,其文档指出当 DeferredInheritedProvider 从树中删除时,正在监听的对象将被自动处理。
实际上,假设您不是自己制作 Stream,那么在清理实际 Stream 方面您无能为力,如 this GitHub comment 中所述。 .提供流的库应该清理流。例如,如果我正在监听来自 Firebase Auth 插件的关于用户登录和退出我的应用程序的流,则该插件有责任清除该流。
但是,监听 Stream(在本例中为 StreamProvider)的对象确实有责任将其 StreamSubscription 清理到该 Stream,StreamProvider 会这样做。
你可以在Provider的源码中看到here在创建 DeferredStartListening 的实例时,对流调用监听,它返回一个 StreamSubscription。在该方法结束时,针对该订阅调用取消,从而清除 StreamSubscription。

关于flutter - 您是否必须在 Flutter 中手动处理来自流提供程序的流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60777964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com