撇号小工具助手不等待返回

时间:2017-10-16 02:52:19

标签: apostrophe-cms

我最近在Apostrophe中经常使用小部件,并且在小部件的助手方面遇到了一些问题。我的小部件上有一个帮助程序,它检查不同对象的某些字段,以确定它是否应该在页面上显示。但是,我注意到了一个奇怪的问题 - 看起来每当我尝试加载某些模块时,帮助程序都不会在返回之前等待async toArray方法完成。所以,当我有下面的代码时:

    self.addHelpers({
        familyMembers: function() {
            var userId = "set from context";

            var userModule = self.apos.modules['apostrophe-users'].find(req, {_id: userId}).permission(false);

            userModule.toArray(function (err, arr) {
                var showMe = false;

                if (some_condition) {
                    showMe = true;
                }

                return showMe;
            })
        }
    })

它实际上并没有向模板返回任何内容。但是,当我返回toArray之外的任何值并且在函数的顶层内部时,它确实返回我设置的值。有没有办法解决?我假设该方法在返回之前没有等待toArray方法完成,但我可能完全错了。

谢谢!

1 个答案:

答案 0 :(得分:2)