上下文:在NodeJ中,我尝试在缓存中读取和写入Infinispan部署的远程服务器。可以从Java代码访问Infinispan中缓存的数据,但我无法从NodeJS访问相同的数据。
下面的代码段
var infinispan = require('infinispan');
var connected = infinispan.client({port: 11224, host: '10.232.200.XXX'}, {cacheName: 'XYZ_CACHE'});
connected.then(function (client) {
var clientPut = client.put('Key1234', 'valueofCache');
var clientGet = clientPut.then(
function() { return client.get('Key1234');
});
var showGet = clientGet.then(
function(value) { console.log('get(key)=' + value);
});
console.log(showGet));
)}
控制台上显示的输出=>
[2016-03-28 14:32:29.447] [DEBUG] connection - Connecting to 10.232.200.XXX:11224 [2016-03-28 14:32:29.479] [DEBUG] connection - Connected to 10.232.200.XXX:11224 [2016-03-28 14:32:29.481] [DEBUG] client - Invoke put(msgId=1,key=Key1234,value=valueofCache,opts=undefined) [2016-03-28 14:32:29.485] [TRACE] router - Write buffer(msgId=1) Promise { _45: 0, _81: 0, _65: null, _54: null }
我得到的是“Promise”,因为它不是我期待的值(NULL)。所以我认为即使我的值甚至没有设置(put函数不起作用),因为如果它将被设置,那么我将能够在我的Java代码中读取它。
有人可以帮助我吗?
答案 0 :(得分:0)
filterby
确实是一个承诺,这是对的。请记住,您只能使用showGet
中的回调或类似的链接方法处理来自Promises的值。就像你使用控制台输出调用来获取密钥一样。
因此,要获得您期望的空值,您必须这样做:
then()
您可以找到有关使用Promise API here
的更多信息