ter*_*poe 7 javascript node.js dataloader
dataloader如何在密钥中缓存和批量请求和存储.
https://github.com/facebook/dataloader
在这里,我需要dataloader包并创建一个实例,但它如何工作aby想法................................. ..请查询数据库查询,为db查找表提供示例
var DataLoader = require('dataloader')
var userLoader = new DataLoader(keys => myBatchGetUsers(keys));
userLoader.load(1)
.then(user => userLoader.load(user.invitedByID))
.then(invitedBy => console.log(`User 1 was invited by ${invitedBy}`));
// Elsewhere in your application
userLoader.load(2)
.then(user => userLoader.load(user.lastInvitedID))
.then(lastInvited => console.log(`User 2 last invited ${lastInvited}`));
Run Code Online (Sandbox Code Playgroud)
Facebook 的 DataLoader 实用程序的工作原理是将输入请求与您必须提供的批处理函数结合起来。它仅适用于使用Identifiers.
分为三个阶段:
Loader都会被延迟,直到process.nextTickLoader只需myBatchGetUsers使用所有请求的密钥的组合调用您提供的函数。这就是为什么在您提供的示例中您应该只有两个请求:
invitedByID)例如,要使用 mongodb 实现此功能,您只需定义 myBatchGetUsers 函数即可find正确使用该方法:
function myBatchGetUsers(keys) {
// usersCollection is a promisified mongodb collection
return usersCollection.find(
{
_id: { $in: keys }
}
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |