javascript - 使用 promises 在 Node.js 中重写 Redis 调用

标签 javascript node.js redis

var Q = require('q');
Q.nfcall(client.get("time_clock", function (err, reply) {
    var time = reply.toString();
    return time;
 })).then(function(time) {
 client.get("time_predicted", function (err, replier) {
    mom=replier.toString();
    res.render('time', {watch: time, moment: mom});
 })
 }).fail(function(err){
   console.log('Error.')})
 .done();
};

此代码失败。下面的代码在不使用 promise 的情况下工作(如下所示)。我要修复的代码在上面。

client.get("time_clock", function (err, reply) {
    time=reply.toString();
    console.log("in here"+time); // Will print `OK`
client.get("time_predicted", function (err, replier) {
    mom=replier.toString();
    res.render('time', {watch: time, moment: mom});
});
});

我需要在第一个代码示例中更改什么才能使其正常工作? (注意:如果我能在最后调用 res.render 会更好,在最后一个或另一个“then”)。

最佳答案

我不会直接回答你的问题;但一个简单的解决方案是使用 redis-then ,一个使用 promises 的 NodeJS 的 redis 库。

关于javascript - 使用 promises 在 Node.js 中重写 Redis 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830417/

相关文章:

javascript - 硬刮 API

javascript - 异步/等待 nodejs 支持?

javascript - Node.js 中字数统计示例中闭包的必要性

node.js - 使用 POST 请求将数据从 Node 服务器发送回 React 客户端

node.js - 使用node.js+redis存储平均请求时间

php - 有效地将存储在 Redis 中的正则表达式与我的输入匹配

node.js - 我如何使用 yii2 和 redis 进行订阅?

javascript - ReferenceError- crossfilter 未定义

javascript - knockout 两个选择列表示例

javascript - 使 Jquery 代码仅在元素在屏幕上时运行