在LevelUP中,您可以通过执行
返回单个值db.get('foo', function (err, value) {
// .. handle `value` here
})
想象一下,你有一组任意长的非连续键:
var lotsOfKeys = ['skajhda', 'asdasdsasd', 'sfsfsdfsdf', 'dssdfdsf'];
如果db.get
是异步的,并且lotsOfKeys
的长度为1到n,那么从leveldb数据库返回相应的值列表的最佳方法是什么?
是否有一些聪明的方法来链接.gets
以返回列表lotsOfKeys
中包含的键的值?
答案 0 :(得分:1)
目前,处理此问题的最佳方法是使用异步帮助程序库。以下是使用map-limit:
的示例var map = require('map-limit')
var keys = [
'skajhda',
'asdasdsasd',
'sfsfsdfsdf',
'dssdfdsf'
]
// limits to batches of 20 db.gets
map(keys, 20, function(key, next) {
db.get(key, next)
}, function(err, results) {
if (err) throw err
results = keys.reduce(function(memo, key) {
memo[key] = results[key]
return memo
}, {})
results['skajhda'] // the result of db.get(keys[0])
results['asdasdsasd'] // the result of db.get(keys[1])
})