在Aerospike for Node.js客户端中是否有任何同步数据库读写方法?
答案 0 :(得分:3)
Aerospike客户端客户端中的所有API调用都使用异步。要连接,读取数据等的模式,这在Node.js中是可以预期的。
您可以使用新的(自Node 7.6)async / await关键字来允许以更易读的方式编写代码。它不是同步的(因为testRead没有阻塞),但它读起来更像是同步代码。
const Aerospike = require('aerospike')
var batchRecords = [
{ key: new Aerospike.Key('test', 'demo', 'key1'), bins: ['i', 's'] },
{ key: new Aerospike.Key('test', 'demo', 'key2'), read_all_bins: true },
{ key: new Aerospike.Key('test', 'demo', 'key3') }
];
async function testRead()
{
var result = await readFromAerospike(batchRecords);
console.log(result);
}
function readFromAerospike(batchRecords) {
return new Promise((resolve, reject) => {
Aerospike.connect((err, client) => {
if (err) {
reject(err);
} else {
client.batchRead(batchRecords, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
})
}
});
});
}
testRead();