所以我有一个用例,我在移动地图时更新了api请求 - 但它可以生成几个带有小地图移动的快速火灾请求 - 我想取消除最后一个之外的所有飞行请求.我可以使用debounce来仅在延迟后发送请求.但是,如果他们碰巧仍在进行中,我仍然想要取消任何旧请求.
const fetchNearbyStoresEpic = action$ =>
action$.ofType(FETCH_NEARBY_STORES)
.debounceTime(500)
.switchMap(action =>
db.collection('stores')
.where('location', '<=', action.payload.max).
.where('location', '>=', action.payload.min)
.map(response => fetchNearbyStoresFulfilled(response))
.takeUntil(action$.ofType(FETCH_STORES_CANCELLED))
);
Run Code Online (Sandbox Code Playgroud)
我看到你可以使用,takeUntil但你需要明确地触发取消操作.我在文档中看到switchMap将采用最新的并取消所有其他的 - 我是否必须在我的api调用中实现取消接口?在这种情况下,它将是对firestore的firebase查询.
有没有办法确定请求是否在带有express的node.js中使用HTTPS?我正在使用 Heroku 及其证书,我假设这些证书安装在负载均衡器上,而不是安装在单个 Web 服务器/实例上。
我尝试了以下设置基本的auth用户名和密码,但它似乎没有在请求中传递基本身份验证.
secureManager = [[RKObjectManager objectManagerWithBaseURL:@"http://localhost:3000"] retain];
secureManager.client.username = uname;
secureManager.client.password = pwd;
RKObjectLoader *loader = [svc getObject:user delegate:self];
loader.userData = [NSNumber numberWithInt:RequestLogin];
Run Code Online (Sandbox Code Playgroud)
更新:发现我的问题,我需要添加以下代码段
secureManager.client.forceBasicAuthentication = YES;
Run Code Online (Sandbox Code Playgroud) 我想强制某些路由始终在我的快递应用程序中使用安全连接.如何检查以确保它使用https?
我在heroku上使用piggyback ssl进行部署.
我有一个基本的问题,我应该在mongo db中嵌入一组关注者/跟随者.在用户对象中嵌入一个嵌入式集合是有意义的,但同样嵌入逆向关注者集合也是有意义的吗?这意味着我必须更新并嵌入以下两个的配置文件记录中:
除非我以某种方式在某处保留事务或更新状态,否则我无法确保原子性.是否值得嵌入两个实体或者我应该更新#1,嵌入跟随者的个人资料中,并在其上放置一个索引,以便我可以查询所有配置文件中的反向跟随者?性能是否受到太大影响?
这是不应该嵌入的集合的候选者吗?我是否应该只有一个边缘集合,我将其存储在自己的集合中,并使用followerid和followbyId?
现在,如果我必须在跟踪或关注两个用户时更新供稿,我应该如何组织它?
至于用例,用户在查看他们的Feed时会看到他们正在关注的人,这种情况经常发生,并且当他们查看任何人的个人资料详细信息时也会看到个人资料的关注者,这也经常发生但不完全如同就像第一例一样.在这两种情况下,每个个人资料页面上都会显示关注者和关注者的总数.
我有一个使用Express和Redis的node.js应用程序.我的问题是如何捕获和处理Redis连接错误.我在express中有一个app.error函数来处理大多数应用程序错误,但由于这个错误是在redis库中抛出的错误,它变成了一个未捕获的异常并且整个应用程序都关闭了.
我可以在我的redis客户端上定义一个on_error方法吗?如果是这样可能是一些示例代码 我应该以某种方式处理node.js下一个tick错误?我不确定我完全理解下一个陈述,所以不确定什么是最佳做法.
在下面的代码中,即使存在连接错误,catch块也不会被命中
try
{
feedClient = redis.createClient(feedPort, feedHost);
}
catch (error)
{
console.log('cannnot start redis' + error);
}
Run Code Online (Sandbox Code Playgroud)
这是未被捕获的错误
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Redis connection to localhost:6379 failed - ECONNREFUSED, Connection refused
at RedisClient.on_error (/node_modules/redis/index.js:136:24)
at Socket. (/node_modules/redis/index.js:70:14)
at Socket.emit (events.js:64:17)
at Array. (net.js:830:27)
at EventEmitter._tickCallback (node.js:126:26)
Run Code Online (Sandbox Code Playgroud) 我将如何创建查询以获取当前玩家的排名和周围玩家的排名。例如,如果我有一个包含名称和积分的排行榜集合
{name: 'John', pts: 123}
Run Code Online (Sandbox Code Playgroud)
如果约翰排在第 23 位,我还想显示第 22 位和第 24 位的用户姓名。
我可以查询 pts 大于 123 的排行榜项目的数量来获得 John 的排名,但是我怎样才能有效地获得一个排名在当前玩家之上和之下的玩家?我可以仅根据索引位置获取项目吗?
我想我可以进行 2 个查询,首先获取用户排名位置的数字,然后是跳过限制查询,但这似乎效率低下,并且似乎没有有效地使用索引
db.leaderboards.find({pts:{$gt:123}}).count();
-> 23
db.leaderboards.find().skip(21).limit(3)
Run Code Online (Sandbox Code Playgroud)
最后一个查询似乎使用其索引扫描 24 条记录,有没有一种方法可以通过范围查询或更有效的方式合理地做到这一点?如果用户排名非常低,例如第 50,000 位,我可以看到这会成为一个问题。
我正在使用knockout来绑定图像列表.在加载图像时设置微调器背景的最佳方法是什么.我有一个微调器类我可以设置并取消设置背景图像,但想知道是否有一种简单的方法可以使用knockout.js绑定到图像完成事件.
我正在遵循ios sdk安装步骤,并注意到没有添加应用程序密钥的步骤.我错过了一步吗?他们如何保护应用程序身份并禁止其他人冒充其他应用程序的应用程序ID?
我想将两个请求合并到一个查询中,我不确定当在一个cypher查询中使用2个匹配语句时会发生什么.
说我有一个朋友列表,我希望看到我的朋友列表,他们的每个叔叔和兄弟姐妹都列在一个集合中.我可以使用两个匹配语句来完成这项工作吗?例如
match friends-[:childOf]->parents-[:brother]->uncles
, friends-[:childOf]->parents<-[:childOf]-siblings
return friends, collect(siblings), collect(uncles)
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行这样的查询,它总是不返回任何结果.