如何在forEach之后获取异步调用的回调将在node_redis模块中完成?

时间:2015-01-13 15:36:04

标签: javascript node.js redis node-redis

我使用node_redis模块来缓存评论,并且需要在新的批准时获得此评论。

从下面的Redis商店获取评论的功能:

var client = redis.createClient();

........

function getComments() {
    client.keys("*", function (err, replies) {
        var comments = [];
        if (err) throw new Error('Redis error');
        //console.log(replies.length + " replies:");

        replies.forEach(function (reply, i) {
            client.get(reply, function (err, value) {
                if (err) throw new Error('Redis error');
                //console.log(i+"    " + reply + ": " + value);
                comments[i] = value;
                console.log(comments);  //comments - not empty here
            });
        });
        console.log(comments); //comments is empty here
        client.quit();
    });
}

评论中出现的问题。当forEach完成它的工作时,comments数组为空。如何为foreach添加回调以使用注释保存范围以获取此数组中的数据?

0 个答案:

没有答案