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
相关产品推荐
相关产品推荐

