node.js 客户端的 Aerospike 同步获取方法
Aerospike synchronous get method for node.js client
Aerospike中有Node.js客户端同步数据库读写的方法吗?
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();
Aerospike中有Node.js客户端同步数据库读写的方法吗?
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();