node.js客户端的Aerospike同步get方法

时间:2018-04-16 00:14:05

标签: node.js aerospike

在Aerospike for Node.js客户端中是否有任何同步数据库读写方法?

1 个答案:

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