首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用组合键的DataLoader

使用组合键的DataLoader
EN

Stack Overflow用户
提问于 2019-12-15 23:00:30
回答 1查看 2.3K关注 0票数 1

我理解dataLoader如何使用简单的键:

代码语言:javascript
复制
import DataLoader from 'dataloader';
import myService from './services/service';

export default () => new DataLoader((keys: any) => Promise.all(keys.map((key: string) => myService(key))));

是否有一个很好的组合键使用模式?

如果我需要使用诸如lat和long之类的东西来调用google,该怎么办?我的钥匙需要是lat和long的独特组合,当呼叫我的服务时,我需要将lat和long分开。

代码语言:javascript
复制
const key = `${latitude}|${longitude}`;

考虑到我可以使用一个映射来查找基于键传递给我的服务的值,这样的用例有一个很好的模式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-16 00:57:38

您可以传入一个非字符串值作为键,然后使用cacheKeyFn选项让DataLoader将键转换为适当的字符串表示形式。

为给定的加载键生成缓存密钥。当对象是键时非常有用,两个对象应该被认为是等价的。

实际缓存密钥的格式几乎不重要,只要两个相同的传入键导致相同的缓存键。这可能是对象的一个问题,其中两个相同的对象可以以不同的顺序拥有属性,从而产生不同的字符串键,除非您在字符串化时对属性进行特殊排序。不过,就坐标而言,这不应该是个问题。在您的例子中,假设您的坐标作为数组传入,我认为以下内容就足够了:

代码语言:javascript
复制
function cacheKeyFn (key) {
  return key.toString()
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59348817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档