如何在nodejs中使用ioredis链接返回
How to chain returns in nodejs with ioredis?
我正在使用ioredis,我想在下面的示例中一直返回到匿名函数中的路径和值。
console.log(
function (jsonGraphArg) {
return Redis.hget(jsonGraphArg[0], jsonGraphArg[1], function(error, result){
result = JSON.parse(result);
return {
path: [jsonGraphArg[0], jsonGraphArg[1], jsonGraphArg[2][0]],
value: result[jsonGraphArg[2][0]]
};
});
}
);
我希望console.log()
的结果是这样的:
{
path: "something",
value: "something else"
}
但是它给了我:
{
_bitField: 1,
_fulfillmentHandler0: [Function: successAdapter],
_rejectionHandler0: [Function: errorAdapter],
_progressHandler0: undefined,
_promise0: [Function],
_receiver0: [Circular],
_settledValue: undefined
}
首先,你试图记录函数声明而不是函数执行结果。
console.log(
(function (jsonGraphArg) {
return Redis.hget(jsonGraphArg[0], jsonGraphArg[1], function(error, result){
result = JSON.parse(result);
return {
path: [jsonGraphArg[0], jsonGraphArg[1], jsonGraphArg[2][0]],
value: result[jsonGraphArg[2][0]]
};
});
})();
);
这段代码将为您提供函数执行的结果。
第二个问题是Redis.hget
是一个异步函数。为了在redis返回结果时尽快得到结果,你需要使用回调。
var callback = function(res) {
console.log(res);
}
(function (jsonGraphArg, callback) {
return Redis.hget(jsonGraphArg[0], jsonGraphArg[1], function(error, result){
result = JSON.parse(result);
return callback({
path: [jsonGraphArg[0], jsonGraphArg[1], jsonGraphArg[2][0]],
value: result[jsonGraphArg[2][0]]
});
});
})();
使用此代码,当redis返回数据时,它将调用callback
函数与res
参数,这将是您的对象与路径和值属性。
答案在承诺里
console.log(
function (jsonGraphArg) {
return Redis.hget(jsonGraphArg[0], jsonGraphArg[1]).
then(function(result){
result = JSON.parse(result);
return {
path: [jsonGraphArg[0], jsonGraphArg[1], jsonGraphArg[2][0]],
value: result[jsonGraphArg[2][0]]
};
});
}
);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 如何在Angular中的表的所有单元格中添加链接
- 通过链接重定向不;我不在jstree中工作
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在nodejs中使用ioredis链接返回