You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Ferry中DataSource.Link枚举的含义及使用方法是什么?

关于Ferry_exec中DataSource.Link的解释与用法

在Ferry(Dart生态的GraphQL客户端)里,Link是客户端与GraphQL服务器之间的直接通信链路——所有发往服务器的请求、从服务器返回的响应,都要经过这个链路处理。

DataSource.Link的含义

这个枚举值明确标记:当前响应的数据直接来自GraphQL服务器的原始返回,既不是本地缓存(Cache)里的旧数据,也不是提前返回的乐观响应(Optimistic),更不是等待状态的占位符(None)。

常见使用场景

  • 首次请求无缓存数据:当你发起一个新的GraphQL查询/突变,本地缓存中没有匹配的记录时,Ferry会通过Link向服务器发起请求,返回的响应数据源就是Link。
  • 缓存刷新或失效:如果缓存数据过期,或者你主动调用refetch方法刷新数据,Ferry会通过Link重新拉取服务器最新数据,此时响应的数据源也会是Link。
  • 强制绕过缓存:针对实时性要求高的场景(比如实时订单状态),你可以配置请求选项跳过缓存,直接从服务器拿数据,这类响应同样会被标记为Link来源。

简单判断示例

// 发起查询并获取第一个响应
final response = await client.request(myGraphQLQuery).first;

if (response.dataSource == DataSource.Link) {
  // 这里处理来自服务器的最新数据
  print("已获取服务器返回的实时数据");
}

内容的提问来源于stack exchange,提问作者Ivone Djaja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:04:59