为什么我不能在闭包中访问局部变量

巴里斯·乌萨克利(BarisUşaklı)

我有以下代码。我将一些数据保存到并行回调中的缓存变量中,但是在并行内部,缓存对象始终为空。有任何想法吗?

Topics.getTopicsByTids = function(tids, uid, callback) {
    var cache = {};
    function loadTopicInfo(topicData, next) {
        async.parallel({
            privileges: function(next) {
                console.log(cache); // always prints empty object
                if (cache[topicData.cid]) {
                    console.log('CACHE');
                    return next(null, cache[topicData.cid])
                }
                categoryTools.privileges(topicData.cid, uid, next);
            }

        }, function(err, topicInfo) {
            // save privs to cache, doesnt seem to modify 
            //the cache object in the outer scope
            cache[topicData.cid] = topicInfo.privileges;                 

            console.log(cache); // prints out the cached data
            next(null, topicData);
        });
    }

    Topics.getTopicsData(tids, function(err, topics) {
        async.map(topics, loadTopicInfo, callback);
    });
};
巴里斯·乌萨克利(BarisUşaklı)

问题在于async.map它同时要求loadTopicInfo20个主题。因此,在将任何内容保存到缓存之前就进行了缓存检查。H!用async.eachSeries替换它可以解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在班级中访问变量。Python

来自分类Dev

为什么不能在声明局部变量之前不像静态变量那样初始化局部变量?

来自分类Dev

为什么VS Compiler不能在C ++上自动初始化局部变量?

来自分类Dev

在类构造函数中,为什么“这是必需的”?为什么我不能使用局部变量?

来自分类Dev

在闭包中为局部变量分配参数

来自分类Dev

如何从嵌套闭包中修改局部变量?

来自分类Dev

为什么我不能在PHP函数中访问我的私有变量?

来自分类Dev

为什么我不能在 PHP 7 中访问我的会话变量?

来自分类Dev

requirejs:为什么模块中定义的函数无法访问require()中的局部变量,我该如何实现?

来自分类Dev

为什么我不能在控制器中访问此ng-model变量?

来自分类Dev

为什么我不能在Flow API Subscriber中从onComplete访问类变量

来自分类Dev

为什么我不能在RStudio中安装“预测”包?

来自分类Dev

为什么不能在try / catch块中访问变量?

来自分类Dev

为什么局部变量只有当它是父函数的输入参数时才能在回调函数中访问?

来自分类Dev

为什么我不能在界面中访问此字段?

来自分类Dev

为什么我不能在Vue中访问html canvas?

来自分类Dev

为什么我不能在Mirth中访问xml消息?

来自分类Dev

为什么我不能在定义中定义变量?

来自分类Dev

闭包中的局部变量如何成为Ext JS中的私有成员变量?

来自分类Dev

为什么我不能访问原型函数(使用闭包)?

来自分类Dev

为什么我的局部变量没有被覆盖?

来自分类Dev

为什么我的局部变量为null?

来自分类Dev

为什么局部变量会自我更新?

来自分类Dev

为什么我得到“赋值前引用的局部变量”?

来自分类Dev

Groovy:为什么闭包本身不能访问?

来自分类Dev

为什么我不能在这种雄辩的数据库调用方法中访问我的变量?

来自分类Dev

为什么我不能从Perl的同一包中声明的sub访问包中声明的变量?

来自分类Dev

为什么不能将变量移出闭包?

来自分类Dev

UnboundLocalError:在python闭包中赋值之前引用的局部变量

Related 相关文章

  1. 1

    为什么我不能在班级中访问变量。Python

  2. 2

    为什么不能在声明局部变量之前不像静态变量那样初始化局部变量?

  3. 3

    为什么VS Compiler不能在C ++上自动初始化局部变量?

  4. 4

    在类构造函数中,为什么“这是必需的”?为什么我不能使用局部变量?

  5. 5

    在闭包中为局部变量分配参数

  6. 6

    如何从嵌套闭包中修改局部变量?

  7. 7

    为什么我不能在PHP函数中访问我的私有变量?

  8. 8

    为什么我不能在 PHP 7 中访问我的会话变量?

  9. 9

    requirejs:为什么模块中定义的函数无法访问require()中的局部变量,我该如何实现?

  10. 10

    为什么我不能在控制器中访问此ng-model变量?

  11. 11

    为什么我不能在Flow API Subscriber中从onComplete访问类变量

  12. 12

    为什么我不能在RStudio中安装“预测”包?

  13. 13

    为什么不能在try / catch块中访问变量?

  14. 14

    为什么局部变量只有当它是父函数的输入参数时才能在回调函数中访问?

  15. 15

    为什么我不能在界面中访问此字段?

  16. 16

    为什么我不能在Vue中访问html canvas?

  17. 17

    为什么我不能在Mirth中访问xml消息?

  18. 18

    为什么我不能在定义中定义变量?

  19. 19

    闭包中的局部变量如何成为Ext JS中的私有成员变量?

  20. 20

    为什么我不能访问原型函数(使用闭包)?

  21. 21

    为什么我的局部变量没有被覆盖?

  22. 22

    为什么我的局部变量为null?

  23. 23

    为什么局部变量会自我更新?

  24. 24

    为什么我得到“赋值前引用的局部变量”?

  25. 25

    Groovy:为什么闭包本身不能访问?

  26. 26

    为什么我不能在这种雄辩的数据库调用方法中访问我的变量?

  27. 27

    为什么我不能从Perl的同一包中声明的sub访问包中声明的变量?

  28. 28

    为什么不能将变量移出闭包?

  29. 29

    UnboundLocalError:在python闭包中赋值之前引用的局部变量

热门标签

归档