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();