等待财产加载

时间:2012-07-31 13:54:33

标签: javascript

我只是想知道Javascript中是否有这样的东西。

var Module = function(){
    var _ajaxLoaded = false;
    var _property = null;
    return {
        init : function(){
            // starting ajax request here
            $.getJSON('requesturl', function(data) {
                _property = data.property;
                _ajaxLoaded = true;
            });
        },
        property : function(){
            if(_ajaxLoaded){
                return _property;
            }
            // stop processing here and wait till  ajax request is finished


            // loop till ajax is finished
            return this.property();
        }
    }

 }();

Module.init();
alert(Module.property());

我知道可以在init函数中进行回调并等待。但是这个例子允许我在不知道它是否存在的情况下直接询问房产。

- 编辑 -

我很确定我应该在init函数中使用回调。它只是一个更好的编码结构。但我真的很想知道,如果我没有其他可能性,它是否可行。 我添加了以下一行:

      // loop till ajax is finished
      return this.property();

这可能会以某种方式工作,还是会以无限循环结束,因为Javascript甚至没有时间处理ajax调用(单线程?)?尚未测试过。

毫无疑问,这是糟糕的编码,我不会使用它,但我只是好奇。

0 个答案:

没有答案